Inspiration

We wanted to bring the comedic chaos of Cards Against Humanity to our Spotify playlists. Everyone has experienced that awkward moment when the wrong song plays at the wrong time—at a funeral, during a breakup, at a family dinner. We turned that universal experience into a party game where players compete to find the worst possible song for increasingly absurd scenarios!

Record integrates real-time Spotify integration with automatically generated prompts. Using Google's Gemini API, hosts can generate infinitely varied prompts tailored by theme (from "Dating Fails" to "Existential Dread") and tone (from "Family-Friendly" to "Unhinged"). Players then race to search Spotify's 100M+ song catalog and submit the most hilariously inappropriate track.

What We Learned

Real-time Sync: Managing 10+ concurrent players across state transitions (lobby → voting → results) without race conditions in Supabase Realtime.

API Rate Limits: Spotify preview URLs expire; Gemini free tier caps at 15 req/min. Required per-game generation instead of per-round.

Gemini Schema: API rejected zod-to-json-schema output - had to reverse-engineer using native SchemaType enums. Built automatic fallback when quota limits hit.

UX Polish: Building a vinyl record-shop aesthetic with smooth animations while keeping the UI responsive on mobile required extensive CSS-in-JS tuning and performance optimization.

Built With

Frontend: Next.js, React, TypeScript, Tailwind CSS Backend: Supabase (PostgreSQL + Realtime), NextAuth.js APIs: Gemini 2.5 Flash, Spotify Web API Deployment: Vercel AI/ML: Google Generative AI SDK, structured output with Zod validation

NOTE: If you would like to test, please text us at 240-784-6513. We are in the process of partnering with Spotify for full access to their API.

Built With

Share this project:

Updates