The story
Play against bots, strangers found by matchmaking, or friends you challenge. On top sits a competitive layer (ratings per game and time control, leaderboards, a tournament engine with live public pages) and a social one (friends, chat, clubs joined by code, coins, daily rewards, 25 achievements, a battle pass and a shop).
It is a no-build web app with Canvas boards and a PHP API on a self-hosted Supabase, wrapped in a Flutter shell for native sign-in and push. Operators run tournaments, clubs, bots, the economy and moderation from a separate Arabic console with 49 modules and 9 roles.
Hard parts cleared
- Four rule engines written the way people here actually play: domino for 2, 3 or 4 with the lock ending the round, three tawla variants including 31, and ludo house rules where three sixes forfeit the turn.
- Chess the client cannot cheat: the server checks every move with the same engine the client ships and decides the result itself. A replay test of 167 master-game transitions proves no legal move is ever rejected.
- A tournament engine written in-house: Swiss with backtracking pairing, round robin, groups, heats, knockouts, multi-stage events and 11 tiebreak rules, tested by simulating full events from 2 to 100 players.
- Multiplayer that survives phones: an authoritative server, presence measured on the server so a wrong phone clock cannot fool it, a bot takes an abandoned seat after 60 seconds, and interrupted games resume.
- Certificates and share cards drawn on the server, with a small Arabic letter shaper written because the image library could not join Arabic letters.












