case study · designer & engineer, solo · 2026 — present
Wahala City.The house changes the rules.

Personal project · set in Abuja
wahalacity.com ↗Wahala City is a roguelike that runs in a phone browser, set on a real street map of Abuja. A hundred houses stand in ten districts round House 101; you take them one at a time by surviving a run of short games, while the house changes the rules on you as you go.
I designed and built all of it: 24 games, a city you can actually walk, a daily house everybody plays on the same seed, a developer-only district behind a six-question gate, an out-of-run currency that pays rent, and rooms where two people play whot, chess or a typing race over Supabase Realtime.
The part I care most about is that it's fair. Every run is dealt from a seed by a pure engine, and before a win counts the server replays the player's taps through the same reducer. A score you didn't play doesn't exist.
stack
- Next.js 16
- React 19
- TypeScript
- Supabase
- Postgres
- Realtime
- MapLibre GL
- PWA
- Netlify
- node:test
Every win is replayed
A deterministic, seeded engine with no clock and no React inside it. The server folds the player's logged inputs through the same reducer to verify a run; 435 tests hold the table and the replay to the same answer.
A city as the menu
MapLibre GL over OpenFreeMap tiles, restyled to print: semantic zoom from district plates to streets of houses, a progress line drawn with line-gradient, and houses that build up as the camera lands.
Twenty-four games, one contract
Each game is a small pure module — deal, step, payout — with its own clock: seconds for a glance, none for a stream, time sized to the line for typing. House rules compose over all of them without any game knowing.
the work






Want the full story?