Module Reference
Deep dive on every built-in module plus the custom HTML5 module system. For the overview and the three-view concept, see Modules under Curate.
📝 Module screenshots pending
The v0.9.71 module screenshot pass hasn't happened yet. Each section below is a placeholder — proper screenshots of each module's Index / Control / Results views and detailed option reference will follow once those captures are produced.
Auction
Live bidding with real-time updates. Documentation to follow — screenshots pending.
Countdown Timer
Synchronised countdown with colour triggers. Documentation to follow — screenshots pending.
Cue Stack Remote
Operator remote control for a cue stack — GO button and standby selection on an iPad or Android device. Documentation to follow — screenshots pending.
Cue Stack Viewer
A guest-facing view picker: the device plays a cue stack's live, frame-synced content with a strip of buttons floating over it, and each guest tunes their own device to whichever view they want — one watches the stage camera while their neighbour watches the scoreboard, both perfectly in sync with everyone else on the same stack.
How it works
- The module runs as a content overlay — a transparent page composited over the device's native content layer, so the feed underneath keeps its frame-sync while the buttons draw on top. Taps on the buttons switch views; taps anywhere else pass through.
- Each button is one curated view — a label plus a cue stack, configured by the operator. Guests can only ever reach the views you curate.
- Switching is per device and instant: the server joins the device to the chosen stack's current output immediately, no waiting for the next cue.
Setting it up
- Curate the views — open the module's Control view, add a row per view (button label + which cue stack it shows), and save.
- Choose the layout — Fullscreen puts the feed edge-to-edge with the buttons floating along the bottom; Windowed confines the feed to a rectangle you position (X/Y/width/height) with the module's chrome framing it — buttons under the picture.
- Lock the group to the module — set the group's playback target to the module. That puts the viewer on the devices and entitles them to switch stacks.
- The Results view shows the configured views at a glance for a producer's monitor.
💡 Build your own
Everything the Cue Stack Viewer does uses the public Module SDK — overlay compositing, tap pass-through and per-device stack switching are all available to custom modules. The Content overlays section of the Module SDK reference walks through building a custom view picker, with a complete working example.
Feedback
Kiosk survey — guest details plus configured questions, with CSV export. Documentation to follow — screenshots pending.
Group Photo
Coordinated photo capture across a group. Documentation to follow — screenshots pending.
Guest List
Attendee check-in. Documentation to follow — screenshots pending.
Happy Face Survey
Three-option emoji feedback. Documentation to follow — screenshots pending.
Leaderboard
Scores and rankings display. Documentation to follow — screenshots pending.
PhotoBooth
Self-service photo capture and review. Documentation to follow — screenshots pending.
Polling
Audience voting with live results. Documentation to follow — screenshots pending.
Q&A
Audience questions with moderation. Documentation to follow — screenshots pending.
Raise Your Hand
Audience attention queue. Documentation to follow — screenshots pending.
Schedule
Gantt-style show timeline that automatically fires cues to locked groups. Documentation to follow — screenshots pending.
Word Cloud
Aggregated text responses. Documentation to follow — screenshots pending.
Custom modules (HTML5)
Beyond the built-ins, you can build fully custom interactive modules using HTML/CSS/JavaScript.
Custom modules use the same three-view structure as built-ins:
- Index (required) — guest-facing HTML, fullscreen on devices. Call
EventSync.send(data)to submit responses. - Control (optional) — Dashboard control surface. Call
EventSync.send(state)to update module state. - Results (optional) — aggregated response display.
JavaScript API
Available inside every module page:
EventSync.moduleId,.deviceId,.deviceName,.groupName,.viewEventSync.send(data)— submit data to the server.EventSync.onStateUpdate(callback)— receive state updates from the server.EventSync.getState()/EventSync.getState(callback)— pull current module state.
Proxied vs Direct URL
Custom modules can load content from an external URL instead of stored HTML:
- Proxied — the server fetches and caches the remote content, then serves it to devices. This preserves the air gap — devices only ever talk to the EventSync server, never directly to the internet.
- Direct — devices load the URL themselves. Requires that the event network provides internet. Only use when you specifically want the devices to hit a live service.
💡 Use cases for custom modules
Branded quiz games, custom voting interfaces, integration with external systems (CRM check-in, digital signage platforms), or embedding an existing web app directly on event devices. Anything that's a website can be a module.