Sessions
Presenter-run, real-time engagement on a shared screen.
A session is a live event: a presenter runs it from the dashboard, the audience joins from their phones with a short join code, and results update in real time on the big screen.
Live or self-paced
A session runs in one of two modes:
- Live — the host drives the room, opening one activity ("moment") at a time.
Each moment moves through
staged→live→closedas the host advances it. - Self-paced — an open link the audience can work through on their own schedule, optionally bounded by an opens-at/closes-at window.
Real-time delivery
Session state, presence, and live tallies are pushed over a separate real-time tier (Socket.IO, backed by Redis pub/sub) rather than the main app server. That keeps the presenter's control panel, the participant view, and the big-screen display all in sync as responses come in, and lets the real-time tier scale independently for larger rooms.
Three views, one session
- Host controls — start the session, stage and launch activities, monitor responses.
- Participant view — join by code on a phone, answer the current activity.
- Big-screen / present view — the shared display the room watches, showing live results as they update.
Same activities as forms
A session is built from activities — polls, word clouds, Q&A, and more — the same primitives async forms use, just delivered live instead of collected over time.