localFlow: a self-hosted DJ stack

Builder · 2026

TypeScript · Navidrome · Python · Rekordbox · Docker

I DJ as B10N, and my library lives on a local hard drive, not in a streaming service. localFlow is the stack I built around that constraint: multi-device streaming via Navidrome, a TypeScript API for scanning, enrichment, and Rekordbox import, and an optional Python worker for BPM and energy analysis when tags are missing.

The design insight is to treat Rekordbox as the source of truth rather than a rival: importing its XML first reuses years of existing analysis (BPM, key, ratings, comments, cue points, the full playlist tree) and avoids re-analysing most of the library from scratch.

On top of that sits what I actually wanted: mix recommendations by BPM, key, energy, and genre, and a set builder, organised in a dashboard that follows the real workflow of preparing to play: ingest, source, curate, perform.

This is the most honest project on this page, in the sense that I am its daily user and its only customer. Every feature exists because a real crate needed digging or a real set needed building.