Realtime group music queue with room codes, host-sync playback, and YouTube embed player.
- Client: React + Vite
- Backend: Cloudflare Workers + Durable Objects
- Anonymous room create/join with short room code
- Shared queue: add/remove/reorder/mix
- Server-authoritative sync (host controls playback)
- URL/ID song add
- YouTube search + recommendations when
YOUTUBE_API_KEYis set
Backend:
cd server
npm install
cp .dev.vars.example .dev.vars
npm run devFrontend:
cd client
npm install
npm run devSet VITE_SERVER_URL in frontend env to Worker URL if needed.
- Backend (Cloudflare Workers):
cd server && npm run deploy- Set secrets/vars in Cloudflare dashboard for each environment:
YOUTUBE_API_KEY(required for search/recommendations)ENABLE_YTDLP=falseon main
- Project root for Git deploy:
server
- Set secrets/vars in Cloudflare dashboard for each environment:
- Frontend (Vercel): deploy
client- Set env
VITE_SERVER_URLto the Worker URL (e.g.https://music-jam-backend.<your>.workers.dev) - Production/preview envs must each have the variable set
- Set env
YOUTUBE_API_KEY(optional but needed for search/recommendations)ENABLE_YTDLP=falseon public/main branch