EEEddieEzekiel
All posts

8 July 2026

Kamusi Yetu: a home for languages that barely exist online

Case study · Kamusi Yetu · Next.js · Supabase

Kamusi Yetu: a home for languages that barely exist online

Kenya has more than forty languages, and most of them barely exist online. Kiswahili and English are everywhere. Try to look up a word in Embu, Kuria or Pokot and you usually hit a wall. Kamusi Yetu is my attempt at chipping away at that wall.

It is a community-built dictionary anchored on English and Kiswahili, where anyone can add words, suggest edits and argue out the right translation in the threads. As I write this it holds 37 languages and a few thousand verified entries, and it keeps growing.

The hard part was never the dictionary

A dictionary is easy to picture and deceptively hard to build well. Storing a word next to its meaning is the small part. The parts that kept me thinking were quieter: how do you hold dozens of languages that do not all behave the same way, and how do you let a crowd fill the thing up without it filling up with nonsense.

Letting a crowd in, without losing the plot

Crowdsourcing is the only way a project like this reaches real coverage. No small team can document forty languages alone. But the moment you let anyone add a word, you also invite mistakes, dialect fights and the occasional bad actor.

So entries are not dumped straight into the dictionary. People add words and phrases, others suggest edits, and there are comment threads where speakers can argue out whether a translation is actually right before it becomes verified. The disagreement is a feature. A living language is contested, and the threads are where that gets settled instead of hidden.

The quiet languages matter most

There is a small design decision I am proud of. The site gently tells you that if your language has fewer entries, your contribution has more impact. Kiswahili does not need me. A language with a handful of entries and a shrinking number of speakers is where a single afternoon of work actually moves something.

The stack

Next.js and TypeScript on the front, Supabase and Postgres holding the data, the accounts and the contribution and verification workflow. Python and Node handle the less glamorous corpus work, the importing and shaping of language data before it ever reaches the site.

Where it is going

Single words are the start. The plan is to grow into full phrases, phrase packs for real context, and eventually the cultural stories that a bare definition can never carry. A word is a door. What is on the other side is the part I actually care about.

Fin