A tool to increase the production value when we host games of Blood on the Clocktower.
The backend (FastAPI) manages game state with event sourcing, provides a soundboard, controls DMX lighting, and pushes live updates via SSE and APNS.
The frontend (React + Vite) is a streaming overlay projected on a wall — countdown timer, player list, and vote threshold — designed to replace OBS scenes.
An iOS app (maintained separately) serves as the storyteller's primary remote control interface.
# Backend
cd backend
uv sync
make run # or: make sample (loads a pre-built test game)
# Frontend (dev mode with hot reload)
cd frontend
npm install
npm run dev # http://localhost:5173/overlay
# Build frontend into backend for single-server mode
make build # then: make run serves everything on :8000- Start the backend:
make run(ormake samplefor a test game) - Start the frontend:
cd frontend && npm run dev - Project
http://localhost:5173/overlayon the wall - Control the game from the iOS app
- Players visit
http://localhost:8000/revealon their phones to see their roles