A lightweight, self-hosted buzzer for personal use. I use it as embed in private Excalidraw instance when we play quiz games.
|
|
-
Zero Setup — No user registration, no accounts, no login walls
-
Single Session — Fresh buzzer for every use, no persistent data to manage
-
Self-Hosted — Run it on your own machine or server
-
Lightweight — Minimal dependencies, fast and responsive
npm installnpm startThe server starts on http://localhost:3000 by default. That's it!
Add this iframe to your Excalidraw or any webpage:
<iframe src="http://your-server:3000" width="600" height="400"></iframe>- Frontend: Simple HTML/CSS/JS interface for triggering buzzes
- Backend: Lightweight Node.js server with Server-Sent Events for real-time updates
- Communication: HTTP endpoints plus Server-Sent Events for instant buzz distribution
No database. No persistence. No fuss.
just dev# Check for issues
npm run lint
# Auto-fix issues
npm run lint:fixjust testbuzzy/
├── src/
│ └── server.js # Node.js backend server
├── frontend/
│ └── public/ # Static serve files
│ ├── index.html # Main UI
│ ├── main-utils.js # Shared frontend helpers
│ ├── main.js # Frontend logic
│ └── main.css # Styling
├── tests/ # Node test suite
├── package.json
├── justfile # Development automation
└── README.md
See docker-compose.yaml and docker-compose.coolify.yaml for containerized deployment.
