Host-driven local-first gameplay

Private roles, PKCE Spotify auth, and real join flow

This version is built for Docker hosting on your Mac. Static assets are served by Nginx, while a lightweight WebSocket signaling service coordinates WebRTC peer setup; Spotify recommends Authorization Code with PKCE for SPAs, so the app uses that pattern instead of implicit auth [web:33][web:35].

Host setup
Waiting for Spotify PKCE or demo mode.
Join
QR code appears here
PIN
------
The signaling service only exchanges SDP/ICE. WebRTC carries session events and private role payloads after peers connect [web:38][web:41][web:44].
Tracks0with tempo data
Pairs0within tolerance
Peers1connected/joined
Round
Load tracks and start a round.
Clues and votes
No clues yet.
No votes yet.