← back to the collection

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.

Knockout bracket screen showing semifinal picks, with France and Portugal chosen to reach the final
All 31 knockout picks in: 74% chalk, exactly one upset, France to lift it. Everything on this screen travels inside the share link.

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.

A shareable knockouts bracket export: all four rounds from the Round of 32 to the final, France beating England, captioned France lifts the trophy
The whole knockout bracket as one exportable card — every pick from the Round of 32 to France over England in the final. This is what lands in the group chat, argument attached.