Lucas Vitti

Meeting Bingo

site: bingo.lucas.mat.br updated

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).