Moderator module overview
How the Moderator module works in Timers Studio: the login gate, the player mirror, the widget grid, the intercom with the director, and the polls it can run on stage.
Last updated
Moderator module overview
The Moderator module is the second pair of hands during a show. The director drives the rundown from the Studio; the moderator watches the same stage output and can relay information, run a poll, page a speaker, or chat privately with the director — without touching the main timer controls. This page describes what is on screen at /moderator/<room>, how it talks to the rest of Timers Studio, and what the moderator can and cannot do.
One route, one room
The module is served from a single URL:
timers.studio/moderator/<room>— opens the moderator player, rendered byModeratorPlayerView. The room ID is the same as the one used by the director’s Studio (/id/<room>) and by the public Player (/player/<room>).
The moderator never sees the director’s transport bar. They see what the audience sees, plus a set of widgets on the side for moderation tasks.
What you get after login
ModeratorLoginView asks for the session password set by the director in the Links modal. Once the password matches, the moderator lands on a two-zone layout:
- Main area — Player mirror. A pixel-for-pixel copy of the audience Player: the same
TimerDisplayorAgendaPlayerViewrendered from the same realtime state. When the director starts a timer, the moderator sees the clock tick at the same millisecond as the stage. - Widget side — Moderation tools. A grid rendered by
DynamicWidgetGridthat can hold up to nine widgets:timer,agenda,agenda_focus,intercom,visual_pager,wharton,qa_push,qa_radar,poll. The director picks which widgets are visible and in what order.
Talking to the director
The moderator and the director share a private intercom, rendered by ModeratorIntercomChat. Messages are stored in Supabase table moderator_intercom and pushed in realtime to both sides. The intercom supports:
- Plain text and emoji.
- Emojicons — small icons that stand for recurring concepts (
[TIMER],[MODERATOR],[TECH_ISSUE], etc.). - A flash signal (the lightning button) that makes the other side’s input field blink until one of them replies.
- Typing indicator and delivery receipts.
Running a live poll
Polls are the main output tool of the moderator. Three components wire up the round trip:
PollModeratorWidget(moderator side) — create, launch, close, push results.SpectatorPollVote(audience side at/ask/<room>) — the spectator chooses one option.PollWidget(player side at/player/<room>) — the stage overlay that shows the live result bars once the moderator hits Push Results.
See Run a live poll for the step-by-step.
Related modules
- Timers — the director’s Studio at
/id/<room>is the source of truth for the rundown and the timer state. The moderator only receives what the Studio pushes. - Agenda — when the director runs an agenda, the moderator’s mirror renders
AgendaPlayerView. - Gateway — the audience lands at
/ask/<room>to vote on the polls the moderator launches. The same Gateway transports the realtime updates between every view.
Scope boundary
The moderator can steer moderation tasks — intercom, polls, visual pager, Q&A push. The moderator cannot edit the rundown, change timers, or switch between the Timer view and the Agenda view: that stays in the director’s Studio. If you need two operators on the timers themselves, both open /id/<room> with a director link.
Where to go next
- Moderator login and access — how the password gate works and what to do if it is rejected.
- Widget grid and layout — pick, reorder, and resize the nine widgets.
- Intercom chat with the director — send messages, flash the director, use emojicons.
- Run a live poll — create a poll, launch it, push results to the stage.