Party Drinks is a Next.js + Supabase party scoreboard for a birthday event. It tracks drinks, renders a live leaderboard, shows a tweet wall, and includes a projector view for a shared screen.
The repo is being refactored in place according to:
.omx/plans/prd-birthday-party-refactor.md.omx/plans/test-spec-birthday-party-refactor.mddocs/birthday-refactor-audit.mddocs/birthday-operator-runbook.md
- stability and UX polish across auth, leaderboard, tweets, profile, and projector
- canonical server-authoritative scoring/ranking core
- duel gameplay with admin kill switches
- derived rivalry / hot-streak callouts that remain safely disableable
- stabilize before adding spectacle
- keep gameplay features gated by default
- treat leaderboard ranking as server-authoritative
- prefer additive, reversible schema changes
/leaderboard— mobile-first party ranking view/tweets— social feed for party updates/profile— player stats and profile details/projector— large-screen party display
pnpm install
pnpm devpnpm lint
pnpm exec tsc --noEmit
pnpm buildThere is currently no automated test script in
package.json. That gap is tracked indocs/birthday-refactor-audit.md.
Create a .env file with the Supabase + auth settings used by the app:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_URL=...
SUPABASE_SERVICE_ROLE_KEY=...
NEXTAUTH_SECRET=...See SUPABASE_SETUP.md for database setup notes.
- remove stale MVP / New Year branding and debug leftovers
- reduce polling and duplicate fetch work, especially on projector
- add feature flags and host kill switches before gameplay ships
- introduce the canonical ledger / rank / duel core
- rehearse with seeded traffic before party-night rollout
- keep diffs small and reversible
- do not add new dependencies without explicit approval
- verify lint, typecheck, and build before claiming completion
- document bounded exceptions when a verification step cannot pass yet
- update the operator runbook whenever flags, rehearsal steps, or rollback behavior change