- Extension DOM mode: auth-context serializer — inlines CSS + images as data URLs, freezes form state, masks [data-dp-mask], strips scripts (R3 client) - API: extractDataUrls rewrites large inline resources into content-addressed assets (R3 server; verified 939KB inline -> 82-byte row + served asset) - Lead-gate steps: config on step, player overlay form blocks advance, submits to leads endpoint (editor toggle + MCP set_lead_gate) - Step-guide export (v2 slice): authed markdown + public HTML at /p/:token/guide - Video export (v3 slice, v0): ffmpeg slideshow of image steps + optional narration mux; DOM rasterization deferred to Chromium service (R4) - Editor: reorder arrows, embed-code copy, guide link, video export - REST reorder endpoint; MCP surface now 13 tools (export_guide, set_lead_gate, render_video) - ffmpeg added to runtime image E2E verified incl. R3 extraction round-trip, lead_gate in public JSON, guide renders, MCP agent exported guide + rendered video. |
||
|---|---|---|
| apps | ||
| extension | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.base.json | ||
Demo Platform (working name)
Self-hosted, open-source interactive demo platform. One capture → interactive clickable demo, step-by-step guide, narrated video. MIT licensed, built and owned by DiligenceWorks Pte. Ltd.
Status: v0.1 — early alpha. Interactive demos (image steps) work end to end: capture with the browser extension → refine in the editor → publish → share/embed.
Why
The interactive-demo SaaS category (Arcade, Storylane, Navattic, Supademo) is closed-source and $500–1,200/mo, and your demos — unreleased UI, prospect analytics, lead data — live in someone else's cloud. This runs on your infrastructure. Nothing leaves it.
AI without a bundled model
The platform never calls an LLM. It ships an MCP server (POST /mcp,
Streamable HTTP): attach your own agent — Claude, an IDE, your own runtime —
with a scoped API key, and it can list demos, write annotations, place
hotspots, reorder steps, read analytics, and (only with an explicitly granted
publish scope) publish. Draft-only by default; the human decides who may
publish. Viewer-supplied data (leads) is wrapped in untrusted-data markers.
Quick start
docker compose up -d --build
docker compose logs app | grep -A2 "FIRST RUN" # your admin API key, shown once
Open /editor, paste the key. Create a demo, upload screenshots as steps (or
install extension/ as an unpacked Chrome extension and record a real
click-through — hotspots are pre-placed from your actual clicks), drag hotspots,
write tooltips, publish. Share /p/<token>, embed with an <iframe>. Optional
viewer identification: append ?v=<viewer-token> to the link you send.
Privacy defaults
No IP addresses stored. No fingerprinting. Viewer identity only via explicit share-link tokens. Lead deletion endpoint included.
API scopes
read · author · publish · admin — keys default to read,author.
Roadmap
DOM-fidelity capture (rrweb serialization, asset pipeline), step-guide export, narrated video render, desktop capture agent. See DESIGN docs in the DW KB.
License
MIT © 2026 DiligenceWorks Pte. Ltd.