Self-hosted cue timer and audience interaction for multi-room conferences. One appliance (a Raspberry Pi 4/5 or any Linux box) runs the whole event:
- walk-in signage for the event and for each room;
- in-room main screens that show polls, Q&A and word clouds on demand;
- speaker DSM / confidence timers;
- a room operator per room, plus a SuperOperator across all rooms;
- a Slido-style audience layer that phones join by QR code, scaled for 1,000+ devices per room.
Every screen is styled by ftl-themes and animates items in and out.
Read in this order:
| Doc | Answers |
|---|---|
| docs/PRODUCT.md | What we are building: the reference event, requirements, vocabulary. Source of truth. |
| STATUS.md | Where we are: done, bugs, gaps, cleanup, open questions, suggested order |
| docs/ARCHITECTURE.md | How it is built: packages, data model, engine, hub, layouts, auth, themes |
| PROTOCOL.md | Wire contract: every route and WebSocket frame |
| AGENTS.md | Rules for anyone (human or AI) changing this repo |
| docs/OPS.md · docs/PI-DEPLOY.md · docs/HW-DRILLS.md | Run, deploy and prove on hardware |
| docs/UI-CONTRACT.md | Pages, scripts, CSS and DOM hooks |
| docs/VENUE-CLOUD.md | Design: cloud server, venue boxes, pairing and release (STATUS N12–N16) |
| docs/BUGLOG.md | Bug log from the 2026-10-06 code review: every open defect with location, fix and status |
| docs/OFFLINE-EDIT.md · docs/TIMERPI-THEME-SPEC.md | Offline mesh editing spec · shelved draft for a future custom theme |
| docs/archive/ | Historical notes. Not current |
Requirements: Go 1.25, gcc (CGO for SQLite), git.
git clone --recursive https://github.com/DrEVILish/timerpi.git && cd timerpi
# (already cloned? run: git submodule update --init)
make run # http://localhost:8080, data in ./data
make test # go test ./...Then:
- Open
http://localhost:8080and Create an event: a name, a supervisor password and your rooms. You land on the SuperOperator dashboard. - Open a room (Open room) and add sessions on the Run tab.
- Open
http://localhost:8080/d/in another window. It shows a ready card. - On the room's Screens tab, Set up that screen: pick Audience, Walk-in or Presenter, a layout and how it is mounted.
- On the Audience tab, create a poll and press Show to Audience. Phones join with the room's QR (
/a/<room code>). - Moderators join from the home page with the event code, then pick their room.
/ home · /e/<event> pick a room · /e/<event>/admin SuperOperator ·
/c/<room> room (Run · Audience · Setup) · /screens/<room> screens ·
/d/ new screen · /d/<room> room screen · /a/<room> phones · /settings box.