Skip to content

v0.2.0 — Spotify-style player, shuffle & repeat

Choose a tag to compare

@SAKMZ SAKMZ released this 21 Jul 16:59

Big UX release: Syncwave now feels like a real music app, and it's rock-solid to self-host.

✨ New

  • 🎚️ Spotify / YouTube-Music-style player — a fixed bottom player with shuffle and repeat (off / all / one) as shared room controls, plus play/pause, skip, a scrubber, and a reactions popover.
  • 📲 Mobile-first app shell — fixed top bar + bottom player with tabbed Queue / Add / Chat that fits a phone screen in one view; two-column layout on desktop. Chat is a proper scrolling window.
  • 🎨 Consistent design system — unified rounded pills, panels, and rows (no more mismatched square/rounded controls).

🛠️ Fixes & reliability

  • 🐳 yt-dlp works out of the box in Docker — the image now ships python3 (yt-dlp's Python build needs it); tracks resolve and cache instead of skipping.
  • 📱 Mobile rendering fixed — killed a horizontal-overflow bug that made phones render the desktop layout.
  • Honest caching UX — the progress bar no longer advances while a track is still downloading; it shows a caching/processing state, then starts the shared clock when audio is ready. Failed tracks auto-skip.
  • 📌 Per-room PWA install — installing from a room opens straight back into that room (server-rendered per-room manifest); a secure-context-aware install banner.

📚 Docs

  • HTTPS is required for PWA install — added a clear guide with the easiest paths: Tailscale Serve/Funnel (free, no domain) and Caddy + domain. See DEPLOY.md.

Deploy

cp .env.example .env
docker compose up -d --build

Runs on a VPS or home server (needs a long-lived WebSocket server + disk cache) — not serverless. Node 20+ and ffmpeg required for local dev.