Demos under version control.
Every demo is a YAML file you can review, diff, and merge. Code review for product video. Branch a demo. Tag a demo. Roll back a demo.
Thirteen step types, one discriminated union
Each step is one of: goto, click, type, scroll, wait, hover, dragTo, keyPress, assertVisible, assertHidden, pause, highlight, cameraPan. Optional caption block per step. Targets are role/name/label/text/testId — never a CSS selector.
Every render of this feature is deterministic. Capture writes the metadata; the composition reads it. Re-render after a UI change to get the new output without re-recording.
# demos/onboarding.yaml
title: "Acme onboarding"
preset: iris
aspect: "16:9"
quality: 1080p
steps:
- goto: https://app.acme.com/welcome
- click: { role: "button", name: "Get started" }
caption: "First, click Get started"
- type: { label: "Workspace name", text: "Acme HQ" }
- click: { role: "button", name: "Create" }
- assertVisible: { text: "Welcome to Acme" }Demo changes go through code review
Diff a renamed button as a one-line change. Comment on a step. Block a merge if a step regression slips in. Engineering ships your demos with the same hygiene as the code.
- Single-file YAML — clean diffs even for non-technical reviewers
- Schema validation in the runner; bad YAML never ships
- Generated events.json captures the resolved selector for forensics
- Demo source lives in /demos/ next to your code, not in a SaaS database
Hand-written, recorded, or agent-generated
Two on-ramps: write the YAML in the cloud editor's typed timeline, or have an agent author it from a URL against the JSON Schema and POST it to the API.
Every render of this feature is deterministic. Capture writes the metadata; the composition reads it. Re-render after a UI change to get the new output without re-recording.
Render with YAML as code.
$19.99/mo or $199/yr. Render through the dashboard or via the API — same access either way.