Skip to content
Portfolio — 2026Bulawayo, Zimbabwe

Knowledge Mhodi

Research

000Founder · Researcher · Systems builder
KM
01Live
  • Platforms
  • Data & Research

One continent, one board — a pan-African chess league played on Lichess and settled on one table.

Role
Founder & builder
Year
2026
Status
Live
afcl.africa
Africa Chess League home page

Hover to scroll the page

Registered players

African federations

Games recorded

Countries in one event

Figures from data.afcl.africa, September 2026.

01The problem

Cross-border chess in Africa depends on travel, funding, venues and coordination that most players and clubs cannot easily access. Online play exists, but nothing gave African clubs a shared competition, a shared table and a shared record.

African players are separated by borders: competing across them usually means travel, funding and venues most clubs cannot reach. AFCL makes the continent a single league, with the research built into it.

02What I built

  1. 01A league whose matchdays are Lichess team-battle arenas: every club enters the same tournament, and club points accumulate across the season.
  2. 02A separate API service (Fastify, MongoDB) that owns competition structure, scoring and derived standings, with a worker that syncs results from Lichess and flags drift between the two.
  3. 03A connected ecosystem around the league: rated puzzle ladders that score speed and accuracy, live FIDE ratings for every rated African player, and an open statistics portal.
  4. 04A news pipeline that scrapes African chess federations and media twice a day into MongoDB, taking only what is new.
  5. 05An admin portal for seasons, clubs, recruiting and sync logs — and a season calendar generated from four answers rather than typed by hand.
  6. 06Research into participation and cross-border reach, published as two preprints, so evidence guides how the league grows.

03In the wild

AFCL Puzzles home page with the continental leaderboard
puzzles.afcl.africa — rated training ladders
African FIDE rankings table
ratings.afcl.africa — 9,640 rated African players
AFCL Data league summary dashboard
data.afcl.africa — the open statistics portal
AFCL on a phone
AFCL Puzzles on a phone
AFCL Ratings on a phone

04Decisions that shaped it

01

Lichess plays the chess. AFCL keeps the score.

Identity, gameplay and fair play stay on Lichess. AFCL owns the competition model — structures, scoring rules, standings and public reporting — and checks its derived scores against Lichess’s own.

02

A matchday is one arena everybody plays in

No fixtures and no pairings: a season is a calendar, not a draw. Nobody wins a matchday; a club’s score is the sum of what its members scored, and the table is those sums over the season.

03

The frontend holds no database

Every byte the site renders comes over HTTPS from the API. Sessions are httpOnly cookies set cross-origin, so CORS names each origin explicitly instead of using a wildcard.

04

The calendar is generated, not typed

Organisers give the opening day, playing times, length and number of matchdays; the dates are derived. Asking for weekday slots had once put the arithmetic on people, and a season finished months late.

05Stack