SQUAD
Pick · Pay · Play
SHIP ROOM
Demo →
TEST · SHIP ROOM
DATADEMO · localStorage|TEAM|PERSONA
TEST · ROLLOUT MAP
·SHIP ROOM

ROLLOUT
MAP.

Stage-by-stage view of every surface. Open demo flows, tick Pass 1 checks (synced with /demo/check), and track security gates before live teams.

Classic dashboard →

PLATFORM

  • Supabase migrations 0005–0008needs migrationS0

    Staging project has schema through email invites.

    Gate: db push succeeds; verify scripts pass.

    Migrations: 0005, 0006, 0007, 0008

  • Env vars on stagingblockedS0

    NEXT_PUBLIC_SUPABASE_* + service role for admin tasks.

    Gate: Login and RPC smoke tests pass.

  • Ship Room rollout mapliveS2

    Stage ladder, matrix, security gates, Slack export.

    Gate: Pass 1 ticks sync with /demo/check.

    Open demo
  • Demo hub + section checkdemoS2

    Persona switch, RESET TEAM, /demo/check.

    Gate: All Pass 1 rows ticked.

    Open demo
  • Preview mocksdemoS2

    Static boards for layout QA.

    Gate: Every preview tile loads.

    Open demo
  • Magic link loginneeds authS3

    Requires non-static host for /auth/callback.

    Gate: Magic link completes; session cookie set.

  • Auth callback routeneeds authS3

    exchangeCodeForSession on /auth/callback.

    Gate: Redirect to ?next= path works.

    Migrations: 0006

  • Admin shellneeds authS3

    NEXT_PUBLIC_ADMIN_EMAILS gate.

    Gate: Non-admin gets 404.

    Open demo
  • Your squads (/teams)needs authS4

    list_my_teams RPC — membership only.

    Gate: Shows only teams you belong to.

    Migrations: 0007, 0008

  • Stripe subscription checkoutblockedS5

    Three tier prices + portal.

    Gate: Test checkout completes on staging.

    Migrations: 0005

MARKETING

  • HomepageliveS1

    Tiers, trial, trust line, no player-rail copy.

    Gate: Pricing matches pricing.ts.

    Open demo
  • Public statsliveS1

    get_public_stats when 0005 applied.

    Gate: Counters load without PII.

    Migrations: 0005

    Open demo

PLAYER

  • RSVP poll + pay paneldemoS2

    IN/MAYBE/OUT, cost breakdown roll-down, I've paid.

    Gate: Pass 1 poll flow ticked.

    Open demo
  • Kitty LitedemoS2

    Top-up + ledger in localStorage.

    Gate: Pass 1 kitty flow ticked.

    Open demo
  • Rate the squaddemoS2

    Post-match ratings shell.

    Gate: Pass 1 rate flow ticked.

    Open demo
  • Invite join (/join/[code])needs authS4

    Email must match invite; redeem_team_invite RPC.

    Gate: Wrong email fails; correct email adds membership.

    Migrations: 0008

  • Live team homeblockedS4

    Mirrors demo home; RLS-scoped data.

    Gate: Foreign slug 404; member sees team payload.

    Migrations: 0008

CAPTAIN

  • Captain verify paymentsdemoS2

    Player marks paid → captain verifies.

    Gate: Pass 1 captain flow ticked.

    Open demo
  • Pick teamsdemoS2

    Auto-balance + formation preview.

    Gate: Pass 1 picks flow ticked.

    Open demo
  • Create teamneeds authS4

    create_team_with_captain RPC — no direct member INSERT.

    Gate: Captain row created atomically.

    Migrations: 0007

  • Side fixture £1blockedS5

    Stub at /side-fixture today.

    Gate: Paid side fixture row in DB.

    Open demo

DEFERRED

  • Fastest fingerblockedS6

    guaranteed_spot_tokens table in 0005.

    Gate: Token promotion flow ships.

    Open demo
  • AI pickerblockedS6

    Anthropic path deferred.

    Gate: API route + Haiku integration.

    Open demo
  • Wrapped PNGblockedS6

    End-of-season export.

    Gate: Generate + download works.

    Open demo