ea24923c1df63dffc8c9aabb9e6f23c75c5af219
Introduce the Catppuccin Mocha color palette and increase font sizes for improved readability, while also adding a visual hint for spacebar functionality. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f3ac8eb3-f610-4678-ab6e-ebf900098be4 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 098ca8d5-1a49-468d-abec-89858708710d Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/d4b7863b-f7b2-425c-a9b5-ad7bd1885e9d/f3ac8eb3-f610-4678-ab6e-ebf900098be4/N1qS6qo Replit-Helium-Checkpoint-Created: true
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
- Bun v1.0+
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
Languages
JavaScript
39.3%
CSS
32%
HTML
15.7%
TypeScript
13%