fullhouse
Highlights
- Based on bingo-bango by f8al (MIT) — same 'both facets' card idea (a square is an exact song or an artist, and an artist square lights up on any of their tracks), reworked into three real modes instead of one
- Host mode: one server-side Spotify connection picks the playlist, guests join a code with no login of their own at all
- Live sessions: a caller screen for the room, guests' cards sync automatically (deliberately dumb polling, not a socket), self-mark toggle for when the sync hasn't caught up yet
- Auto-call from real Spotify playback — confirmed catching an actual track live through Spotify Connect within one poll tick, not just plausible-sounding code
- Guest self-service stayed too: PKCE login for your own playlist, or paste any public playlist URL with no login at all, routed through the host's connection instead of a dead-end app-only Spotify token
- Found and fixed two real Spotify API bugs along the way — a quietly renamed playlist-tracks endpoint, and public playlists needing real user auth to read despite being public
A friend (f8al) built bingo-bango: pick a Spotify playlist, get a bingo card, mark squares as tracks play. Fully client-side, no backend, no accounts — clever, and it works. The one real friction: every single player has to individually log into their own Spotify just to generate a card, even to sit down at the same table as everyone else.
fullhouse keeps the core idea — a square is either an exact song title or an artist, and an artist square lights up on any track by them, so marking one song can complete several squares at once — but splits it into three real modes. Host mode connects Spotify once, server-side; guests join a five-letter code with no login at all, and a caller screen shows what’s playing for the room. Live sessions sync automatically — deliberately dumb polling rather than a socket, since a bingo card doesn’t need sub-second latency — with a self-mark toggle for the moment before the sync catches up. Solo mode keeps the original’s approach for anyone who’d rather bring their own playlist without a session.
Two real Spotify API surprises turned up along the way, not just guessed at: the playlist-tracks endpoint was quietly renamed with a reshaped response (confirmed directly against the live API, not from stale docs), and reading a playlist’s tracks turns out to need genuine user authentication even when the playlist is fully public — so the “paste any public playlist, no login” path routes through the host’s own connection instead of a dead-end app-only token. Auto-call — marking a track the instant it’s actually playing on the host’s real Spotify — was verified live, not assumed: it caught a real track within one five-second poll tick.