a website that roasts your music taste.
most year-end music summaries are polite marketing campaigns. they show you friendly pastel graphs, congratulate you on listening to 40,000 minutes of acoustic ballads, and tell you that you're in the "top 1% of listeners".
i wanted something that acted like a brutally honest best friend. you sign in with Spotify, it analyzes your top tracks, your recurring artists, and your mood valence (how sad or upbeat your library actually is), and hands you a savage, sarcastic AI roast card.
the hard parts
1. Zero Client Secret Exposure: Spotify's OAuth flow strictly prohibits public localhost redirects and client-side secret exchanges. all token negotiations happen in server-side API routes, so API credentials never touch the browser.
2. Beating API Latency: querying Spotify for a user's profile, top 50 tracks, top artists, and recent listening history in sequence took almost 2 seconds—which felt agonizingly slow. i bundled the requests using Promise.all on the server, cutting round-trip time down to under 350ms.
3. Making It Shareable: if someone gets roasted, they immediately want to post it to Twitter or Discord. i used Next.js @vercel/og to dynamically bake their roast, top offending songs, and artist badges into a high-res OpenGraph preview image on the fly.
4. Handling AI Quotas: external LLMs inevitably hit rate limits. i built an offline rule-based roasting engine that kicks in automatically if Gemini or OpenAI quotas exhaust, guaranteeing 100% uptime.