Champs FC
Champs FC runs Last Man Standing and a score Predictor against real football competitions. The second build threw out the assumption baked into the first — that the game was about the Premier League — and made competitions configuration instead of code.
- Client
- Cuyco (Internal)
- Year
- 2026
- Built with
- SvelteKitSupabaseTypeScriptVercel

The Brief
A side venture with a business partner: a survivor-style football game where players pick one team to win each round, and a wrong pick puts them out. The first version worked, but every part of it assumed the Premier League. Adding a second competition meant editing the engine, which is the kind of design decision that quietly caps a product.
The Challenge
Making competitions content rather than code. The engine, the database schema, and the UI all had to stop knowing which tournament they were running — while still handling the awkward specifics each competition brings. Knockout football is a good example: in a World Cup round of 32, the team that "wins" is the one that advances, including on extra time or penalties, and that is not something you want to re-derive from a scoreline.
What We Built
- A competition-agnostic survivor engine — round lifecycle from scheduled to picking to locked to in-play to settled, with everything competition-specific pushed into a config row: provider, rules, theme, round strategy
- Provider adapters — external football APIs normalised behind one interface, so adding a data source is an adapter rather than a rewrite
- Two games on one platform — Last Man Standing for survivors, Predictor for score predictions, sharing the same rounds and fixtures
- Scheduled settlement — cron endpoints poll fixtures and advance rounds automatically, secret-gated, with no separate API server to run
- Postgres with row-level security via Supabase, so access rules live with the data rather than in application code
- A simulation harness — seed scripts and bot players to run a whole competition against the engine before real players ever touch it
The Outcome
Live and free to play, running Premier League rounds after opening on the World Cup. Because competitions are configuration, the next one is a config row and an adapter rather than a development cycle.
More case studies

Moro Gelato
2024
A full redesign of a Cape Town gelato brand's website with a modern look and premium feel.
- Webflow
- Shopify
- GSAP

Snagg
2024
A social wishlist app with in-app subscriptions, deep linking, and a real-time follow system.
- FlutterFlow
- Firebase
- RevenueCat

projectLIS
2026
A German-language marketing site for an EV charging infrastructure company, built to convert two very different audiences.
- Next.js
- React
- Vercel