Skip to content

Glitched/deaths-door

Repository files navigation

Death's Door

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.

Quick Start

# 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

Running a Game

  1. Start the backend: make run (or make sample for a test game)
  2. Start the frontend: cd frontend && npm run dev
  3. Project http://localhost:5173/overlay on the wall
  4. Control the game from the iOS app
  5. Players visit http://localhost:8000/reveal on their phones to see their roles

Requirements

  • Python 3.14+ (managed by uv)
  • Node.js 25+ (managed by mise)
  • Font Help Me (optional — falls back to Impact)
  • Optional: DMX USB interface for lighting effects

About

Server supporting our games of Blood On The Clocktower!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors