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.