← Explore Fantasy Draft Selector in its world
← All Automations AI-GENERATED REVEAL APP

Fantasy Draft Selector

My college fantasy football group asked for "something cool with AI" to determine draft order this year. This is what I built instead of another duck race — a JRPG-character-select-styled reveal, every team an AI-generated character, everyone watching the same shared moment from their own phone.

WHAT IT DOES

Same order, every screen.

  • Every viewer opens the same link and gets the identical draft order, seeded and shuffled entirely client-side — no server, no live sync, no way for someone who refreshes early to see a different result
  • Each team gets its own AI-generated character portrait, a short animated clip, and a narrated voiceover line — one part JRPG character-select screen, one part sports-draft reveal
  • A lobby countdown builds tension before the release moment, including a self-retracting "false prophecy" prank that always lies and always confesses before the real reveal
  • A prediction slip lets each viewer guess their pick before it's revealed, with a progress rail and confetti for a correct call
HOW IT WORKS

Spec first, then build.

  1. Structured interview before any code

    A grill-me-style Q&A locks every decision — roster shape, tone, feature list, beat-by-beat UI flow — before implementation starts, so decisions get made once instead of re-litigated mid-build.

  2. League data isolated to one file

    Team names, character flavor text, release time, and the shuffle seed all live in a single config file. Everything else — the shuffle, the sequencer, the UI — is generic and league-agnostic.

  3. Character art, then motion

    A reference still gets generated per person, then animated into a short clip via Kling — one character portrait and clip per team member, batch-generated and sample-approved before the full run.

  4. Narration timed to the reveal

    Per-team and per-pick voiceover lines generated via OpenAI's TTS, sequenced against the reveal timeline so the narration lands exactly as each pick animates onto screen.

  5. Deterministic by design

    The draft order comes from a seeded shuffle, so the same seed always reproduces the same order. That made it safe to re-run the entire reveal after draft day, purely to record a clean demo, without touching the real result.

WATCH IT RUN

How it got built.

Spec, build, and demo — the whole thing was AI-assisted end to end. I made the judgment calls, Claude did the typing.

▶ Watch on TikTok Try the Live App ↓ GitHub
WHAT'S LIVE

Open source, ready to fork.

  1. Live, static, no backend

    Deployed on Vercel as a static build. No server, no database, no network calls at runtime — the shuffle, the config, and all media are bundled client-side.

  2. Public GitHub repo, genericized

    The public release ships with placeholder team names and no character media — only the real league config differs per deployment. Swap one file to run it for your own league.

  3. Tested end to end

    Unit tests (Vitest) cover the shuffle, sequencer, and validation logic; Playwright end-to-end tests cover the lobby, results view, and full reveal sequence.

WANT SOMETHING BUILT LIKE THIS?

Let's find what to automate.

All of it's open source.

See the Code →