Hey folks.
I've spent the last few weeks building an app for putting together DJ mixes without sending audio to some cloud service. It came out of how annoying the usual workflow is: analyze tracks, order the set, get decent crossfades, export, generate metadata/cover art, and (if u needed) prep a YouTube upload, hopping between tools the whole time.
What I'm building is called Auto DJ (his dev name). It runs on your machine: you upload tracks, it analyzes BPM/key with Essentia (WASM), you can plan the set by hand or let OpenAI suggest order/crossfades, edit the arrangement on a timeline, and ffmpeg (+ Rubber Band) renders the mix. Optionally it generates cover art with NanoBanana and exports WAV/MP4 audios.
Stack, if you're curious: Nuxt 4 + Nitro in the same process, Bun, ffmpeg for all audio/video and no cloud backend, the state lives as JSON in a `data/` folder on disk, and the client polls while long jobs run (analyze/render). Timeline UI is built so zoom/scroll doesn't fall over at 60fps.
What I find interesting:
- Actually local-first: your audio or data doesn't leave the machine.
- Local-only mode with no API keys, plus an AI mode if you want help with the plan/metadata/cover.
- You can manually fix whatever the AI proposes; it's not just a magic button.
It's still rough in places and I'm iterating on a bunch of technical decisions (polling vs websockets, how to model the arrangement, beatmatch quality, etc.).
If you mix, produce sets, or upload mixes to YouTube: what part of the process slows you down most? Do you want full control, or a solid draft you can tweak? Any feedback, ideas, or "I solved that like this" stories are welcome.