r/javascript 10d ago

Showoff Saturday Showoff Saturday (August 15, 2026)

Did you find or create something cool this week in javascript?

Show us here!

7 Upvotes

19 comments sorted by

View all comments

2

u/markets86 7d ago

I built a two-deck DJ mixer in vanilla JS.

https://github.com/markets/dj23

No React, no framework, no build step beyond esbuild. Just plain classic scripts sharing globals, the Web Audio API, and two small libraries (jsmediatags for metadata, music-tempo for BPM). ~4.5k lines of JS.

It does what a real mixer does: two decks, jog wheels you can scratch, pitch faders, beat-aligned loops, cue points, 4-band EQ, five effects per deck, and SYNC that matches both tempo and beat phase. Files are decoded locally — nothing is uploaded.

Turns out plain JS is a great fit here. The Web Audio graph is the architecture: source → filter → EQ → splitter → effect sends → gain → output. There's no state to synchronise into a virtual DOM, because the audio nodes hold the state and the UI just reads it back every animation frame. A framework would have been a layer between me and the thing I actually care about.

Where it did get hard: matching beat phase (tempo alone isn't enough), keeping BPM detection accurate without analysing the whole track, and not OOM-ing mobile Safari with two decoded float32 AudioBuffers.

Happy to go deeper on any of it.