Back to projects

Music Bingo

The blind test you play on the living-room table — one grid per phone, the verdict stays human

Music Bingo screenshot

Overview

Music Bingo is a multiplayer musical blind test built for real parties. One person creates a game — theme, grid size, win rule — and shares a QR code; everyone else joins from their own phone with a first name and gets a unique grid of band names. The presenter launches the tracks from their console, the others tick their card. It is the digital take on a paper bingo card, and it deliberately stops there: the app detects no win, blocks no cheating and stores no account. BINGO is a claim, not a validation — the verdict is shouted across the room.

Why I Built This

We used to play this at parties with printed grids and a marker, and the paper always ran out before the evening did. I wanted the same game on phones without turning it into an app that referees for you — so the software deals the grids and plays the music, and the humans keep the arguing.

Features

  • Game in Three Taps — Pick a theme, a grid size (3×3, 4×4 or 4×5) and a goal (one line or full card), then share a QR code or a 4-character code
  • One Unique Grid per Phone — Every player joins with just a first name and gets their own draw from the theme's pool — no account, no password, no email, identity is a random localStorage token
  • Presenter Console — A dedicated master screen launches the tracks, keeps the play history and shows every player's card and BINGO claim in one place
  • Human Verdict by Design — The app never declares a winner: BINGO is a claim, the console merely flags ticked bands that were never played, and the presenter rules out loud
  • Catalog as Data — One JSON file per theme (the rock / pop-punk one ships 63 bands with YouTube IDs and start offsets); adding a theme is adding a file, zero code changes

Tech Stack

Frontend

React 19 TypeScript Tailwind 4 Vite vitest

Backend

Node 22 node:http node:sqlite Zero npm deps

Infrastructure

Docker Nginx Caddy GitHub Actions