LiveRundown is an open-source, real-time theatrical rundown engine, designed to replace static paper scripts for backstage crews. Built for low-latency, multi-device synchronization, it ensures stage managers, lighting operators, and audio technicians stay locked to the exact same cue line globally, compiled as a single HTML file, hosted on Netlify, and powered by Firebase.
demo-sync.mp4
During theatrical productions involving large ensembles (50+ cast and production crew members), traditional script management breaks down:
- The "Lost Tracker" Dilemma: While a Stage Manager or Prompter can keep a finger on a static paper script or PDF, actors moving on stage must look up and use props, immediately losing track of their current line.
- The Rehearsal Burn Rate: Up to 5 minutes per scene transition is lost simply getting a massive cast aligned on the correct script index, stalling creative momentum.
- The Communication Void: Static PDFs cannot communicate immediate pacing adjustments or line progressions from the tech desk to backstage in real-time.
- The Cluttered Desk: A Stage Manager's station typically juggles a paper script, a stopwatch, a pacing notebook, and a cue sheet as separate physical objects, all competing for the same hands and the same attention.
LiveRundown digitizes markdown scripts and processes them into a high-visibility, deterministic grid interface. Operating on a broadcaster-receiver architecture powered by a low-overhead real-time database sync, any crew member or actor can track the exact line progression from their individual mobile devices or workstation terminals. On top of live tracking, it doubles as a rehearsal tool, a pacing log, a notepad, and a print-ready script exporter - all from the same markdown source and the same single HTML file.
- 🌐 Live sync across every device, broadcaster → receivers — solves the Lost Tracker Dilemma and the Communication Void
- ⏳ Per-actor countdowns with automatic color allocation and proximity warnings — no more guessing whose line is coming up
- 👤 My Lines — long-press to isolate one or more actors' tracks
- 📝 Rich-text Notepad and ⏱️ Timer & session log - the script, the stopwatch, and the notebook, all on one screen
- 🔔 Live paging — send an instant toast to every connected device via a
<NOTIFY>script marker or the manual Notify button - 📋 Checklist — a
checklist.mdsidecar file renders as a tappable prop/task list - 📄 One-click PDF export of the loaded script as a color-coded, print-ready document
- 🔍 Adjustable page scale, 50–500%, remembered per device
- 🔘 Hardware key binding (F13) for foot pedals — advance the line without touching a screen
- Single dependency-light HTML file — no build step, no install
- Go to Firebase, and log in with any Google account
- Click "Create a project", name it, disable Google Analytics, click Create Project
- Click "+ Add app", click "</>"/Web, give your app a name, do NOT check "Also set up Firebase Hosting", click "Register"
- Firebase now shows you a firebaseConfig object. It looks like a block of JavaScript with an apiKey, authDomain, etc. Copy the whole thing onto a notepad. Click "Continue to console".
- In the left sidebar, go to "Databases & Storage" → "Realtime Database", click "Create Database"
- Choose the server location closest to you
- Click "Start in test mode", click "Enable", and copy the URL that ends with "firebasedatabase.app"
- Go to Rules, change whatever is there, to the below block, click Save
{
"rules": {
".read": true,
".write": true
}
}
⚠️ These open rules are designed for low-friction setup within trusted, private cast networks. Adjust Firebase Auth/Rules if deploying publicly.
- Download index.html from this repo, open it, and edit the Firebase config (between lines 1370 and 1420 / search for the ✏️ marker near the top of the file)
- Place index.html and your script.md on a folder, and upload the folder as-is on Netlify
- Visit the given URL on two tabs/windows/devices, and check to see if it works like it should
📖 See DETAILS.md for the full manual: script markers, every control, and configuration instructions.
The engineering philosophy behind LiveRundown prioritizes ultra-low friction deployment and maximum device compatibility. Backstage environments often rely on varying cell signals, older smartphones, and legacy hardware.
- Frontend: Vanilla HTML5, CSS3 Variables, ES6 JavaScript
- Database & Synchronization: Firebase Realtime Database
- PDF Generation: pdfmake (loaded via CDN, no build step)
- Deployment Infrastructure: Netlify
Concept, architecture, and product definition by @leonampa. Assisted by Anthropic's Claude Sonnet (full code development and feature implementation, debugging, and ongoing development) and Google's Gemini 3.1 (prototyping, GUI mockups, brainstorming, research).