Every hobby has the part you love and the part that makes you think, “How can I make this process better?”
For me, DJing is one of those things that lives in two worlds. On one side, it’s pure flow — reading a room, mixing energy, making a crowd feel something. On the other side, there’s all the prep work: building the actual set. Figuring out which 15 tracks to play for a house party versus a club opener, making sure the BPMs progress naturally, keeping keys harmonically compatible throughout, and building an energy arc that pays off at the right moment. That second part? That’s where I saw an opening for AI.
So I built SetLab.
What Is SetLab?
SetLab is a full-stack AI copilot for DJing. You describe the gig — genre, mood, crowd context, set duration, lineup slot — and SetLab generates a complete, music-theory-sound tracklist in seconds. Each track comes with BPM and Camelot key data, and the set is visualized as an energy arc so you can see the shape of your performance before you even start loading tracks.
The name comes from exactly where you’d expect: “Set” as in DJ set, “Lab” as in laboratory. It’s a space to experiment, test, and build.
What sets it apart from a playlist generator is the DJ-native output. SetLab exports directly to Serato Crate or Rekordbox M3U/XML — the two professional DJ software platforms. You’re not getting a Spotify recommendation. You’re getting a playable set that drops straight into your workflow.
Why I Built It
I’ve been DJing as DJ Kelton Banks for years. In that time, the tools available to DJs have gotten genuinely impressive — better hardware, better software, better libraries. But one thing that hasn’t changed much is the set planning process itself. You’re still doing it manually: digging through your crates, checking BPMs, cross-referencing Camelot keys, sketching out an energy curve, and hoping it lands with the room you’re playing for.
That process isn’t hard — but it’s slow, and it’s the kind of slow that compounds. A 60-minute set for a specific crowd context can take 30–45 minutes to plan well. Multiply that across regular gigs and residencies, and it adds up.
As a PM, I try to apply the same filter I’d apply to any product decision: does this solve a real problem, or am I just building for the sake of building? SetLab passes that test. The problem is real, the output is concrete, and the integration with existing DJ tools means the output is actually usable — not just interesting.
How It Works
The core of SetLab is an agentic pipeline powered by Claude Sonnet 4.6. When you submit a set brief, Claude uses its web search tool to discover current, relevant tracks and applies structured tool use to reason about BPM progression, harmonic compatibility via the Camelot Key System, and crowd energy across the arc of your set.
Here’s the flow:
- You set the brief. Mix name, primary and secondary genre, vibe/mood (optional), crowd context (club, lounge, wedding, festival, house party, radio, or corporate), set duration (30, 60, 90, or 120 min), and lineup slot (opener, middle, headliner, or closing). You can also add a venue name for gig-specific context.
- SetLab generates the set. Claude builds a tracklist with BPM and key data for each track, calculates key distribution, and shapes the energy arc for your specific slot and crowd.
- You get a production-ready output. The set exports to Serato Crate or Rekordbox M3U/XML. The energy arc is visualized on screen. You can regenerate, copy the list, or add individual tracks to your wishlist.
Beyond set building, SetLab has a full dashboard: an Explore section for AI-curated track discovery organized by BPM range and genre, a Track ID feature that uses your browser mic (via ACRCloud) to identify tracks playing in the room, and a Library and Wishlist/Download Queue for managing your crates over time.
The Tech Stack
This was a full-stack build from scratch — not a no-code workflow, not a prototype. The full architecture:
Frontend: Next.js 16 / React 19 / Tailwind CSS v4 / shadcn/ui + Base UI / Lucide React
Platform: Vercel with Fluid Compute, Edge Middleware, Node.js 24
AI Engine: Claude Sonnet 4.6 with Web Search Tool, Structured Tool Use, and an agentic pipeline via @anthropic-ai/sdk
Data: Supabase — 12 tables, full Row-Level Security, Supabase Auth + @supabase/ssr
Integrations: Stripe, ACRCloud (Track ID / music recognition), Last.fm, Resend, Beatport / DJcity
DJ Native: Serato DB Parser, Rekordbox XML, Camelot Key System, MediaRecorder API (in-browser mic recording for Track ID), @react-pdf/renderer
The decision to go full-stack instead of no-code was intentional. The DJ-native layer — Serato parsing, Rekordbox export, Camelot key logic, in-browser audio recording — isn’t something you can wire up in n8n. That functionality required real code, and it’s what makes SetLab actually useful to a working DJ rather than just an interesting demo.
What I Learned
AI is best at eliminating the mechanical, not the musical. The decisions that make a set great — when to drop energy, how to read a room, which record fits this specific moment — those are still deeply human. SetLab doesn’t try to touch those. It handles BPM sequencing, key compatibility, and energy arc design so my brain is free for the creative calls.
Agentic pipelines unlock music discovery in a way static models can’t. The web search tool in Claude’s agentic pipeline means SetLab isn’t limited to a fixed track database. It can surface current, relevant music for a specific genre and mood — which matters a lot in DJ culture where what’s fresh changes constantly.
Going full-stack was the right call, even when it was slower. The temptation early on was to prototype quickly with no-code tools. But the features that make SetLab genuinely useful to DJs — the Serato and Rekordbox export, the Camelot key system, the in-browser Track ID — required building properly. The extra investment in the stack paid off in the output.
What’s Next
SetLab isn’t a one-off experiment — it’s a product I’m actively using and continuing to develop. The Stripe integration is live, which means it’s built to support real users. The roadmap includes deeper library management, smarter venue-aware recommendations, and tighter integration with the platforms DJs already live in.
Sometimes the best projects are the ones you build for yourself, because you’re also the most honest product critic. I’ve run enough sets through SetLab now to know what’s working and what still needs work — and that feedback loop is exactly what’s driving what comes next.
Watch the Full Breakdown
I documented the whole build — the problem, the architecture, and a live demo — in the video above. If you’re a DJ, a PM, or just someone who likes watching full-stack AI projects get built from scratch, it’s worth a watch.
Follow along on YouTube for more builds like this.

Leave a Reply