How I designed and built a real-time multiplayer music battle game using the Claude API and Supabase — as a PM who builds, not just plans.
3–8
players per room
2
game modes shipped
0
app downloads required
Solo
built end-to-end by me
Live in browser — no download required
01 — The Origin
I wanted a side project that answered a real question: can AI enhance a social experience without becoming the point?
Party games are everywhere. Music apps are everywhere. But I kept noticing that the best moments at social gatherings weren't the games with the most rules — they were the ones with the most room for personality. The spontaneous song someone throws on. The group vote that goes sideways.
I also noticed a separate, quieter frustration: sharing music with friends is weirdly passive. You send a link, they maybe listen, the conversation dies. There's no shared moment, no reaction, no stakes. The song just disappears into a chat thread.
I wanted to bottle both things. A game where the prompt sets the scene, each player brings their own song, and the room decides who read it best — and in the process, everyone walks away having actually heard something new. Simple loop. High social stakes. No instructions needed.
What I wanted to prove
What existing tools got wrong
02 — Problem Framing
Problem 1 — The party game gap
Groups of friends want a shared activity that's low-barrier to join, naturally competitive, and generates actual conversation — but most party game options require equipment, downloads, or learning curves that kill the vibe before the game starts.
Problem 2 — Music sharing has no moment
People constantly want to share music with their friends, but every current path is passive. Sending a link in a chat means no shared reaction, no stakes, and no guarantee the other person even presses play. There's no social ritual around introducing someone to a song you love — Mic Check creates one.
3 sec
target time from QR scan to in the room
0
accounts or sign-ups required to play
Any
device — phone, tablet, or laptop via browser
03 — User Personas
The Host
Makes things happen
Sets up the game, pulls up the QR code, keeps energy high. Most outgoing person in the group. Wants the game to start fast and look impressive. Gets embarrassed if setup is clunky.
Needs
→ Room creation in under 30 seconds
→ Shareable join link or QR code
→ Control over game mode and pace
The Competitor
Here to win
Thinks strategically about what songs will land. Reads the room before submitting. Checks the scoreboard after every round. Gets invested fast and wants rounds to feel fair.
Needs
→ Clear, live score tracking
→ Transparent voting results
→ Fast round pacing
The Casual
Just here for the vibes
Doesn't know every song but wants to participate. Has no interest in reading instructions. Just wants to jump in and not feel stupid. Their experience determines whether the game is inclusive or cliquey.
Needs
→ Self-explanatory UI with no tutorial
→ Prompts that don't require deep music knowledge
→ An easy first win
04 — Key Product Decisions
Decision: Two game modes vs. one
Democratic voting (everyone votes) vs. rotating judge (one player decides). I kept both after playtesting showed they feel completely different socially. Democratic voting creates a "the crowd decides" energy. The rotating judge creates accountability — and drama.
Tradeoff accepted: More complexity in the host UI. Worth it for the social variety.
Decision: Where AI lives in the loop
Claude API handles prompt generation, song evaluation context, and end-of-round summaries. The AI never plays against humans — it's infrastructure that makes the human interactions better.
Why this matters: If players feel like they're competing against an algorithm, the social dynamic breaks.
Decision: The game as a music sharing vehicle
Mic Check had to double as a friendlier way to share music. The prompt forces context — "best song for a road trip at midnight" — so when someone submits a track, it lands with meaning. Players don't just hear a song; they hear why someone chose it. That's the moment that makes sharing feel alive.
Design implication: Every round needed a reveal moment where songs are shown before voting — not hidden — so players could absorb the picks and the conversation could start naturally.
Decision: No app, no accounts
If joining requires a download or sign-up, the game dies at the table. QR code or room code → phone browser → you're in. Supabase real-time channels made this possible without server infrastructure I'd need to maintain.
Tradeoff accepted: No persistent user profiles or history. Fine — the game is ephemeral by design.
05 — North Star & Metrics
North Star Metric
Session completion rate
% of games that start and play to the end. A completed game = the experience delivered. A dropped game = something broke the social loop.
Leading Indicators
Lagging Indicators
Counter-Metrics
06 — Wireframes
Every screen had to be self-explanatory — no tutorials, no onboarding.
Screen 1 — Game Lobby
Screen 2 — Submit Your Song
Screen 3 — Voting
07 — Phased Rollout
Phase 1 — Playable Core Loop
ShippedPrompts → song submissions → voting → scores. Hardcoded prompts, no AI yet. Got this in front of real people within two weeks of starting.
Key learning: The timer on submissions created urgency that made the game feel alive. Without it, players overthought every pick.
Phase 2 — AI Prompts + Two Game Modes
ShippedIntegrated Claude API for dynamic prompt generation and end-of-round commentary. Added rotating judge mode. Prompts went from predictable to genuinely surprising.
Key learning: Judge mode created dramatically different social dynamics. When one person holds all the power, the lobbying starts immediately.
Phase 3 — Shareable Results & Social Hooks
RoadmapEnd-of-game summary card players can share. "Most dramatic moment" highlight generated by Claude. Replay link so a group can run it back.
Hypothesis: Shareable end-cards will be the biggest organic growth lever.
08 — Reflection
What worked
What I'd change
The PM lesson: Consumer social products live and die by group chemistry, not feature completeness. A game that's 70% done but makes five people laugh for an hour is infinitely more valuable than a polished product nobody wants to play again.