A tiny, independent site for sharing private mixes with clients. No accounts, no third-party service, no AI in the loop after this point — just a GitHub repo and a script.
Every mix gets its own page with a waveform player and a unique link. There’s no shared list of all your mixes anywhere on the site, so a client with one link can’t stumble onto anyone else’s.
template/player_template.html — the player page, waveform + play buttonadd_mix.py — run this locally to add a new mixaudio/ — where the actual audio files livemixes/ — one generated HTML page per mix, e.g. mixes/xJ4kLm2p.htmlRunning the script copies your audio file into audio/, generates a new
page in mixes/ with that file loaded into the player, and (if you’re using
git) commits and pushes it. It then prints the link you send to your client.
mixsite.cd mixsite
git init
git add .
git commit -m "initial commit"
git branch -M main
git remote add origin https://github.com/yourname/mixsite.git
git push -u origin main
https://yourname.github.io/mixsite. It takes a minute or two to go live
the first time.python3 add_mix.py "Song Title - Mix v3" ~/Desktop/song_mixv3.mp3
First time you run it, it’ll ask for your GitHub Pages URL from step 3 above and remember it. Every run after that just needs the title and the file.
It prints a link at the end, something like:
https://yourname.github.io/mixsite/mixes/xJ4kLm2p.html
That’s what you send the client.
.html file from mixes/ and
its audio file from audio/, commit, push.