Muzingo
Interactive online music bingo. Muzingo combines classic bingo with music trivia, replacing numbers with 10–30 second song snippets. Designed for virtual team building, pub hosts, and social events.
Player Interface
Mobile WebReactNext.jsDigital Bingo Card
Host Controls
Audio PlaybackPause / Skip / ReplayGame Management
Real-time Layer
WebSocket ServerLive Game StateReconnect Logic
Win Validation
Cryptographic VerificationServer-side Only5-tile Pattern Check
Infrastructure
100 Concurrent PlayersStreaming AudioLow Latency
Architecture
| Layer | Technology |
|---|---|
| Frontend | React, Next.js (mobile-web optimised) |
| Real-time state | WebSocket connections |
| Audio delivery | Streaming audio infrastructure |
| Win validation | Server-side cryptographic verification |
Constraints
| Rule | |
|---|---|
| ✅ DO | Prioritise WebSocket reconnection logic. A player who drops must instantly sync back to current game state on reconnect. |
| ✅ DO | Optimise the UI for mobile web browsers — most players use their phones as digital cards. |
| ❌ DON'T | Rely on client-side state for game validation. All win conditions must be cryptographically verified by the server. |
| ❌ DON'T | Auto-play audio without explicit user interaction (browser autoplay policy). |
Core Business Rules
- A win is defined strictly by the server recognising a 5-tile sequence (horizontal, vertical, or diagonal) before any other player
- The game host has absolute control over audio playback: pause, skip, replay
- Architecture must cleanly support up to 100 concurrent real-time players in a single room without latency desync
⚠️
Win validation must never occur client-side. Any PR that moves win logic to the client will be rejected at review.
User Journey
Host Setup
Host logs in and selects a themed playlist (e.g., 90s hits, Afrobeats).
Game Link
Host generates a game link or QR code and displays it to players.
Player Join
Players scan the code and join the lobby via their mobile browsers — no app install required.
Audio Snippet
Host plays a 10–30 second audio snippet.
Player Dab
Players identify the song and mark their digital card.
Win Detection
First player to hit the winning pattern clicks "Muzingo!" — the server verifies and broadcasts the winner.