DEV Community

Cover image for I Built a DJ Playlist Optimizer Without Writing a Single Line of Code Myself
BrAInStorm
BrAInStorm

Posted on

I Built a DJ Playlist Optimizer Without Writing a Single Line of Code Myself

I'm not a programmer. I run a YouTube channel about electronic music (634K subs) and I DJ psytrance.
I built a web app that solves a real problem I kept running into. Here's what happened.


The Problem

Every DJ using Rekordbox (in my case) knows this: you can sort playlists by key OR by BPM, but not both.
And the key sort is alphabetical - A, Ab, Am, B — which has nothing to do with harmonic compatibility. Pioneer's own forum has a feature request for this sitting there for years.
With 20 tracks, there are 2.4 quintillion possible orderings. No one's doing that by hand.


What I Built

HarmonySet — upload your Rekordbox playlist (.txt), get the mathematically optimal track order for harmonic mixing and energy flow (Serato and Traktor coming soon).
The algorithm:

  • Calculates harmonic distance between every track pair using the circle of fifths
  • Solves it as a Traveling Salesman Problem (Held-Karp DP for ≤20 tracks, greedy + 2-opt for larger)
  • Three energy modes: Ramp Up, Ramp Down, Wave Runs client-side — files never leave your browser

The Stack

  • Next.js 16, TypeScript, Tailwind
  • Supabase for auth and saved playlists
  • Vercel for hosting
  • Monthly cost: $0

How It Got Built (Without Me Coding)

I used Claude Code as my development tool. Not autocomplete — the actual developer. I described what I wanted, reviewed output, tested, iterated.
Phase 1: Python prototype on Streamlit. Ugly. Proved the algorithm worked.
Phase 2: Full rewrite in TypeScript/Next.js. Proper UI, accounts, freemium tiers.
Phase 3: SEO. The site was live for a month and completely invisible to Google — no robots.txt, no sitemap, the 404 page was injecting noindex on every unmatched URL. Fixed all of it in one session.


Numbers

  • 99 tests passing (didn't write any of them)
  • Optimization runs in under 1 second
  • 0 files sent to any server
  • 512 Google impressions in the first week of indexing
  • ~7,300 words of guide content for DJs
  • Running cost: $0/month

Mistakes I Made

Fell into the vibe coding aesthetic trap. My first version looked like every other AI-generated landing page — purple gradients, radial glows, generic SaaS template energy. I didn't realize how much that was killing credibility until I saw a viral post about how "vibe coding floods the web with purple AI sites." DJs would take one look and bounce. I had to scrap the design and rebuild it to look like an actual pro-audio tool, not an AI demo. Lesson: if your site looks like AI made it, your target users won't trust it — especially in a niche like DJ software where aesthetics signal legitimacy.

Underestimated parsing. The algorithm was maybe 20% of the work. Making the tool handle every weird Rekordbox export format — UTF-16LE encoding, tab delimiters, five different key notation systems — that's where most of the debugging went.
Started with the wrong tool for the job. The first version was a basic Python script I built with Gemini. It worked, but out of curiosity, I brought it to Claude Code to see if it could improve the algorithm. It rebuilt the whole thing from scratch in TypeScript — better architecture, better optimization, proper test coverage. And the differences were dramatic.


What I Learned

  • AI tools don't replace understanding. I can't write TypeScript, but I know the architecture. When something broke, I described the problem accurately because I understood what the code was supposed to do.
  • Domain expertise is your moat. I knew harmonic mixing was a real pain point because I live it. That same expertise told me the purple gradient design was wrong — no real DJ tool looks like that. You can't prompt your way into either insight.
  • A non-programmer can ship a real product in 2026. Not a toy. 99 tests, structured data, SEO, auth, database. The bar for "you need to be a developer" has moved.

Try It

harmonyset.com — upload a playlist, see what happens. If you use Rekordbox specifically, there's a step-by-step guide for exporting and optimizing.
Code is on GitHub.
Two things I'd like feedback on:

If you're a DJ, do the energy modes feel right for your sets?
If you're a builder using AI tools, what is it that you found that needs to improve?

Top comments (2)

Collapse
 
steve_s_79e4e042878754a1c profile image
Steve S • Edited

I managed to make a python script that take your xml and writes it into the Rekordbox Database. I can add as many as I made. No need to have to use XML bridge Reach out to me and I'll share. my channel is TheDjlab

Collapse
 
brainstorm_ profile image
BrAInStorm

Hey Steve, writing directly to the Rekordbox DB is actually something I've been planning as a future feature, just haven't had the time to dig into it yet. The main thing holding me back is the schema risk, Pioneer doesn't document their DB structure, so one Rekordbox update could silently break the writes. How are you handling that? Glad to see someone cracked it, would love to chat more if you're open to it.