So I’ve been building this thing called Rec for a minute now. It’s basically a music recommendation platform - you pair albums together, rate them, and help people discover new shit.

What is it tho

You know how Spotify’s algorithm keeps recommending you the same 5 songs? Yeah I got tired of that. Rec lets actual humans make recommendations instead.

The idea is simple: take an album you fw, pair it with another album you think fans would also dig, slap a score on it. The platform aggregates all these recs and surfaces what’s trending.

The stack (it got out of hand)

Started simple. Did not stay simple.

  • Frontend: Next.js 15, React 19, TypeScript, Tailwind
  • State: React Query + Zustand
  • API: GraphQL with Apollo Server
  • Database: Postgres + Prisma
  • Auth: NextAuth with Google/Spotify OAuth
  • Jobs: BullMQ + Redis
  • Data: MusicBrainz, Spotify, Last.fm, Deezer APIs

The rate limit struggle

MusicBrainz is goated for free music data but they rate limit you to 1 request per second. When you’re trying to enrich thousands of albums… that’s a problem.

Had to set up a whole job queue system:

// queue handles rate limiting so I don't get banned
await musicBrainzQueue.add('enrich-album', {
  albumId: album.id,
  priority: 'low'
}, {
  delay: 1000
});

Now I can queue up mad enrichment jobs and let em process in the background without getting my IP blocked.

What’s next

Still grinding on:

  • The social feed
  • Artist pages with full discographies
  • Mobile app maybe? (we’ll see)

Peep the code on GitHub if you’re curious.