Meeting Bingo
A multiplayer bingo game for meetings. Share a key — the first player to it becomes admin and picks the grid size (3×3 or 5×5). Each player writes their own predictions of what will happen in the meeting ("someone will say synergy", "we'll schedule a follow-up", "the video will freeze"). Marking is honor-system; the winner is whoever hits blackout — the full card filled.
Installable PWA in both languages (EN/PT, with
translated suggestions), peek at any other player's card
in real time over SSE, medal-ranked leaderboard 🥇🥈🥉 (tied players
share a place), deep links at /?key=… for
direct invites, sharing via the Web Share API and WhatsApp, and
cookieless telemetry on self-hosted
Umami.
Stack deliberately lean: Node 20 + Fastify in pure ESM (no build
step), better-sqlite3 in WAL mode for game state, SSE
for real-time updates, and a vanilla-JavaScript SPA. Single Docker
container behind nginx with proxy_buffering off on the
events route. All game state lives in server-side SQLite; the
browser only holds identity and preferences in
localStorage (refresh-safe — you rejoin the same room
even after closing the tab).