mr-arpg.github.io/mixtaper — turn a YouTube playlist into a nostalgic mixtape CD you can share.
Paste a playlist link, write a handwritten title on the disc, and send someone a URL. Everything lives in the link — no accounts, no backend, no tracking.
- Open Mixtaper
- Paste a YouTube playlist URL or ID
- Add a title (shown on the CD label)
- Share the URL — the recipient gets their CD
Example:
https://mr-arpg.github.io/mixtaper/?list=YOUR_PLAYLIST_ID&title=Awesome%20Mix%20for%20Melina
| Param | Description |
|---|---|
list |
YouTube playlist ID (required) |
title |
Handwritten label text (optional) |
- Spinning CD with click-to-play / pause
- Handwritten title on the disc (Sedgwick Ave Display)
- 7-segment LED track counter
- Prev / next controls with playlist loop
- Fully responsive — text scales with the disc via container queries
Requires Node.js 22+ (or Bun).
git clone https://github.com/mr-arpg/mixtaper
cd mixtaper
npm install
npm run devOther scripts:
| Command | Description |
|---|---|
npm run build |
Production build |
npm run build:pages |
Static build for GitHub Pages |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
The site deploys automatically on every push to main via GitHub Actions.
Live URL: https://mr-arpg.github.io/mixtaper/
- Open Settings → Pages in the GitHub repo
- Under Build and deployment, set Source to Deploy from a branch
- Set Branch to
gh-pagesand folder/ (root), then click Save
The workflow pushes the built site to the gh-pages branch on every push to main. The first successful run creates that branch — if it does not appear yet, re-run the workflow from the Actions tab after it completes.
Note: If you previously set Source to GitHub Actions, switch it to Deploy from a branch →
gh-pagesas described above.
# Linux / macOS
VITE_BASE_PATH=/mixtaper/ VITE_PRERENDER=true npm run build:pages
# Windows PowerShell
$env:VITE_BASE_PATH="/mixtaper/"; $env:VITE_PRERENDER="true"; npm run build:pagesOutput goes to .output/public/.
Mixtaper is dual-licensed:
- Non-commercial use — free under the PolyForm Noncommercial License 1.0.0 (personal projects, hobbies, education, non-profits, etc.)
- Commercial use — requires a separate license; see COMMERCIAL-LICENSE.md
Copyright © 2026 Armando Gonçalves.
- TanStack Start
- TypeScript · React · Tailwind CSS
- YouTube IFrame API