Case study · NO. 02
Our bracket, not theirs.
I wanted a bracket game my friends could use without creating accounts, leaving more time to argue about group C. So I built us our own.
- Started
- Spring 2026
- Status
- Available to play
- Share format
- One short URL
- Accounts
- None, on principle
No accounts, on principle
Bracket predictions are a fun argument between friends. I wanted sharing them to be as simple as sending a message, without asking anyone to create an account. That led to the design: the share link is the bracket. Your picks get squeezed, bit by literal bit, into a short URL; send it to the chat and the other person’s browser reconstructs your entire tournament from the address alone. Sharing a bracket needs no database lookup. The small friends’ pool uses display names and deliberately relies on trust: someone who knows a name can change that entry. That tradeoff keeps joining simple for this group.

Making real results score it
The bracket itself worked in days; scoring it against reality took the time. FIFA’s new 48-team format comes with full tiebreak ladders, head-to-head mini-tables, and an official constraint table that routes the eight best third-placed teams — regulations as load-bearing code. It’s exactly the kind of work I’d never have attempted solo before coding agents: Claude Code turned the tournament regulations into a rule engine I could test, which left me free to sweat the judgment calls — standings only publish once a group’s six matches all finish, so scores never flicker, and a hand-published admin result overrides any feed glitch.
The bracket reads you back
Filling out a bracket is taking a position, so the game ends by reading yours back to you: how chalky, how dramatic, how Eurocentric, and the gauntlet your champion has to run to prove you right. That recap is what people actually screenshot into the chat — the link carries the data, the card carries the argument. The leaderboard compares those picks with tournament results, giving the group chat a running score to argue over.
