KeshavAnandCode f5af850cf3 Remove player names, use numeric IDs
- Removed player name input from join page
- Changed player IDs to numeric (1-99999999)
- Auto-generate unique IDs on join
- Store only ID in localStorage (no name)
- Display #ID format in all player displays
- Updated server to validate numeric IDs
- Removed playerName from buzz events
- Greek team names preserved for auto-assignment
2026-04-08 18:47:43 -05:00
2026-04-08 18:47:43 -05:00
2026-03-25 20:56:28 +00:00
2026-03-26 00:17:59 -05:00
2026-03-20 18:26:24 -05:00
2026-03-26 00:17:59 -05:00
2026-03-20 18:26:24 -05:00

Buzzer

Real-time buzzer system for Jeopardy, Quiz Bowl, and anything else that needs a fair, fast buzzer. Self-hosted, zero frontend dependencies.

Written entirely by Claude (Anthropic).


Requirements

Usage

bun install
bun --hot run src/server.ts

Open http://localhost:3000. Create a room to host, or enter a room code to join.


How It Works

One moderator per room controls the buzzer, timer, and teams. Players join via a six-character code and buzz in by clicking or pressing Space. The moderator sees the full buzz order with millisecond deltas. Everything is configurable live, mid-game.

Teams are auto-named using the Greek alphabet and can scale from 2 to 64.

Moderator identity is verified server-side by a secret generated at room creation — players cannot escalate privileges.


Structure

src/
├── server.ts          # HTTP + WebSocket server
├── rooms.ts           # State, types, broadcast helpers
├── ws-handler.ts      # Message routing
└── public/
    ├── index.html
    ├── styles.css
    └── script.js
Description
Vibe coded buzzer site for jeopardy, quiz bowl, etc.
Readme MIT 768 KiB
Languages
JavaScript 39.3%
CSS 32%
HTML 15.7%
TypeScript 13%