The F1 Fantasy Site Left Too Much Out — So We Built Our Own Dashboard

The official site wasn't enough
The F1 Fantasy platform is fine for picking drivers and checking points. But it leaves a lot to be desired when your league has house rules — and ours has a lot of them.
Bruts & Boots is our private F1 Fantasy league. Finish last, you owe champagne. Don't pay before the next race? Your debt escalates. There are challenge chips for head-to-head bets, sprint beer partnerships, a shared financial pot, and costume penalties for the season's worst performer. It's competitive, it's ridiculous, and it's the most fun part of race weekends.
The problem: none of that existed on the official platform. People weren't tracking their debts. Rules were being forgotten or conveniently misremembered. The Google Sheet we tried fell apart by race four — five tabs, broken formulas, and accusations of scorekeeper bias.
We needed something that would enforce the rules automatically, give everyone a clear view of where they stand, and make the whole thing more fun — not less.
What we built
Bruts & Boots Tracker pulls live race data from the F1 Fantasy API and applies every house rule automatically. No more manual scorekeeping, no more arguments about what's owed.
Boot Tracker calculates champagne penalties based on when you last changed your lineup. Before FP1? Quarter bottle. Before race start? Half. Didn't touch it? Full bottle. Debts escalate if you lose again before paying.
Challenge Chips let you bet head-to-head once per half-season. The app locks it at qualifying, resolves after the race, and lets the winner choose their reward.
Sprint Partnerships pair teams on sprint weekends — lowest combined score owes beer. Unpaid beer converts to boot debt automatically.
Financial Ledger tracks the weekly pot and distributes payouts. No more "who owes what" conversations.
Spoiler Mode hides results for 48 hours for anyone who DVRs qualifying.
Now everybody can easily see what they owe, track their standing, and actually abide by the rules of the league. It made everything more fun because the accountability is built in.
How AI shaped the build
The project went from nothing to production in 30 days. AI-assisted development handled the scaffolding, Supabase migrations, API routes, and the data sync pipeline. The dashboard layout and loading states came together in hours.
The business logic — penalty calculations, chip resolution, debt escalation — was all human. These are small functions, but they encode rules that real money depends on. When someone disputes a penalty, we point them at the code.
The F1 Fantasy API was the trickiest part. It's undocumented, inconsistent between regular and sprint weekends, and changes format without warning. Every normalization bug required manual investigation.
What we learned
Encode the rules, don't describe them. Moving the rulebook into typed functions eliminated every argument. The code is the constitution now.
Build simulation mode early. We generated fake race results to fast-forward through a simulated season before the real one started. Caught edge cases in debt escalation, chip expiration, and payout rounding before real money was involved.
The fun features matter most. Custom team avatar sounds — click and it plays an audio clip — get the biggest reaction on race weekends. The dashboard went from "a tool" to "a thing everyone opens together."
The 2026 season is underway, debts are accumulating, and the spreadsheet is officially retired.
Built with Next.js, TypeScript, Supabase, and Tailwind CSS. Deployed on Vercel.