ClientOne codebase, iPhone and browser
The iOS app and the browser game build from one TypeScript codebase. The web version installs like an app and works offline.
TypeScriptReact NativeExpoPWA
SimulationA deterministic match engine
Seasons simulate on the device from the squad, a seed and a versioned ruleset, using Elo ratings and a Poisson goal model, so any result can be replayed exactly.
Seeded RNGEloPoisson model
DataTens of thousands of player-seasons, packed small
Every player is rated for each season and at their peak, compiled from public football data. A build step packs it from 20 MB to under 1 MB compressed, loaded one league at a time.
Data pipelineCompressionLazy loading
BackendMultiplayer at the edge
Private leagues, live 1v1 drafts, leaderboards and push notifications run on serverless workers at the edge, with scheduled jobs that tidy up abandoned matches.
Cloudflare WorkersD1CronPush notifications
Fair playResults the server can trust
Every ranked, daily and 1v1 result is re-run on the server before it counts. Versioned rulesets keep older app versions valid while an update rolls out.
Server verificationMatchmaking by rating
Release and growthShip fast, in 20+ languages
Signed over-the-air updates from a self-hosted update server, a website generated in 22 languages from one template, App Store listings in 51 locales, and privacy-friendly ad attribution.
OTA updatesi18nfastlaneVercel