The six pieces every vertical inherits.
Five scene templates and the shared shell. Drop a new HTML file onto a slot and it overrides the live deploy for this browser only. Open any vertical in a new tab to preview the override in context. To make a change canonical, download the file and drop it into the Mac repo — that's the only path that flows to GitHub and Replit.
Override slots
?nooverride=1 to any vertical URL.Filename must match one of the six slots above
Quick preview
Every story, one click away.
All verticals registered in story-shell.html. Filter by name, toggle splash and calibrate, and copy a deep link to any scene.
Edit a demo. Or compose a new one.
Every demo is a vertical (tenant + customer) wearing one of four use-case shapes — canonical 5-scene, fraud-fabric (3), intake (3 or 4), maintenance (3). Each scene loads a template from /story-templates/. Pick any combination; the shell renders it.
Edit hotspots and beat copy without touching the shell.
Pick a vertical and a scene; edit the per-beat headline, lede, and hotspot coordinates. Save writes to localStorage and the shell picks it up on next load. Export gives you a JS block you can paste into story-shell.html when you're ready to make it canonical.
What's deployed, what's been said.
Live counts for the canonical site state, plus the feedback inbox pulled from the public read-only endpoint. Updates are best-effort — if a fetch fails, the site is still up; the admin page just can't reach the file or the API.
Site state
CANONICAL.md on each refresh.Feedback inbox
/api/feedback/public-a7k9-mpx2-4wnz-r3dh. CORS-open, PII stripped.Reset all admin state
Clears every uploaded HTML override (IndexedDB) and every saved narration / hotspot edit (localStorage). Does not touch the deployed files. Use when you want a clean slate before previewing what visitors will see.
Site-wide toggles.
Server-side flags persisted in Replit DB. A change here flips the experience for every visitor on the next page load — no redeploy, no per-file edit.
Feedback widget
<script src="feedback-widget.js"> tags. No file changes; the toggle is consulted on every request.