The Blunder

Fantasy football, flipped.

Inverse fantasy football. Your roster scores when your players fail: interceptions, fumbles, sacks taken, missed kicks. The messier your lineup, the higher you climb. Live on the web and the iOS App Store.

App Store
8 September 2026
Platform
Web + iOS
Stack
Vite, React, TypeScript, Supabase, Capacitor
My part
Founder, sole builder
The Blunder front page
The front page: a paper of record for people who root for chaos.
The Blunder Pop-Up League
The Pop-Up League: ten players, one week, no draft, no friends required.

The problem

Fantasy football rewards the same handful of stars, so leagues are decided by draft luck and casual players check out by week four. Nobody had built the version where you cheer for the mistakes.

How it scores

Every event that makes a fan groan is worth points: an interception 5.5, a lost fumble 6.5, a sack taken 3.5, a missed field goal 2.5, a missed extra point 4.5, a turnover on downs 4, a safety 10. Defenses score when they get shredded. Players carry a Mistake Rating, so the draft room ranks them by how reliably they blunder.

Leagues play head-to-head each week with a live inverse box score and win probability, trade with an inverse-value fairness meter, and can rewrite the scoring table in settings.

The Pop-Up League

No draft, no season, no friends required. You are dealt ten disaster-prone players on the spot, get three swaps, the week locks, and you are paired with whoever else turned up. Tuesday you find out.

Decisions that shaped it

  1. Public play-by-play data, no likenesses.

    Stats come from nflverse. Names and statistics are factual public data; there are no team logos or player photos anywhere in the app, which keeps it on the right side of licensing.

  2. Rebalance from evidence.

    A thousand simulated seasons showed quarterbacks and defenses earning 89% of all points under the first scoring table, which made the draft solved. Scoring v2 spread it out; v3.1 normalises by position, with turnovers universal.

  3. Park the waivers.

    Two months of real play produced two waiver claims, both at a bid of zero. Free-agent adds are now immediate, and the waiver machinery is kept, not deleted.

  4. Random deals by default, a weekly captain as the lever.

    Drafts are dealt randomly unless a league chooses snake or auction. A weekly captain who scores double is the skill knob instead.

  5. A Mac mini next to the router.

    On one Sunday the hosted scheduler ran 4 of its 28 slots and scores sat six hours behind finished games. A Mac mini now ingests during the slate alongside it. It holds no privileged key, writes through a single signed procedure, cannot finalise a week, and a freshness check watches it.

  6. A shell over the live site.

    The iOS app loads theblunder.app, so a push updates every phone at once. The Dynamic Island fix reached users before the App Store build that carried it.

  7. Row-level security plus self-checking procedures.

    An adversarial audit found nothing critical, high or medium. Sign in with Apple and Google was declined on purpose, and there are no paid leagues.

Where it stands

  • First commit 20 July 2026. TestFlight 2 September. Rejected on 4 September for a missing in-app account deletion, fixed the same day. Approved and live 8 September 2026.
  • Version 1.0.1 followed on 11 September with the Dynamic Island fix.
  • The player pool grew from 658 to 1,049 active players during the 2026 season.
  • Weekly scoring runs Tuesdays at 10:00 UTC, the morning after Monday Night Football, September through February.

My part

I built it alone, from first commit to App Store approval in seven weeks: scoring model, data pipeline, draft room, iOS shell and the App Review back-and-forth.

© 2026 Jumaane Bey
Privacy