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

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.

02My role

Founder and sole engineer. I designed the competition model, built the web apps, the API and the sync worker, run the seasons, and wrote both papers on it.

03Approach

  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.

04Results

Registered players

Countries with registered players

Games played in league arenas

Of arena entrants had played an earlier arena

Source: Live figures from data.afcl.africa, 23 September 2026 — 16 arenas since launch on 22 August 2026.

  • Launched publicly in August 2026 after four months of closed beta with 20 users.
  • In the first 28 days, fourteen countries competed and every member entry was in a multinational field (study window, 18 Aug–14 Sep).
  • The research also showed what did not follow automatically: a third of registrants never played, and the most active tenth produced over half of all appearances.

05In the wild

AFCL Puzzles home page with the continental leaderboard
puzzles.afcl.africa — rated training ladders
African FIDE rankings table
ratings.afcl.africa — FIDE lists for 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

06Decisions 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.

07Stack