Self-maintaining demo videos
Your demo re-shoots itself when your product changes.
Paste a URL and one line of intent — Demofy films your app into a narrated demo, records behind your login, and shoots it again when your UI moves.
The output
Every beat is a decision
A demo is not a screen recording with a mouse wandering across it. It is a shot list: where the camera sits, when it moves, and what made it move.
A camera plan, drawn — not captured frames. The scales are the ones the compositor uses.
Why it lasts
A demo that keeps up with your product
Most demo videos are true on the day they were recorded. Demofy's are plans it can shoot again — on your word, or on its own when a capture finds the app has moved.
- 01
A plan is recorded
- 02
Your app moves
- 03
The capture stops
- 04
It re-shoots itself
- 01
Re-shoot it when the UI moves
One button sends Demofy back through your app from scratch — same URL, same intent, today's interface — and films it again.
- 02
A dead beat heals itself
When a capture cannot find an element it recorded, Demofy says which one in plain English and re-shoots the demo automatically, once.
- 03
Every re-shoot is a version
The old video is never overwritten. The versions sit in one chain on the job page, and a link you already sent keeps playing.
- 04
It records behind your login
Sign in once in a browser Demofy drives, save the session, and it films the product a logged-out visitor never gets to see.
- 05
No signup, no card, nothing to install
Paste a URL on this page and the first demo starts. An account is for keeping a library — it has never been the price of making a video.
How it works
Four phases, and you watch all of them
Demofy streams every phase to your job page as it happens, so a long render reads as work rather than as a hang.
- 01
Discovery
A model reads your app one screen at a time and writes the plan — the only half that calls one.
- 02
The recording is a file you can re-run
Every click, every line of narration and every camera move is written down. That written-down demo is the thing Demofy keeps — so it can make the video again without filming your app again.
The file is demoscript.json: discovery writes it, and the second half only replays it.
- 03
Your finished video never depends on an AI service
Only the planning half reads your app with a model. Filming replays the plan in a container, so the same plan gives the same video — today, and the day an AI provider has an outage.
No model and no API key in the render path, enforced by a lint rule and a CI check.
- queuedjob accepted, quality tier locked for the run
- discoveringa numbered digest of every interactive element on the page
- discoveringshot list written: which controls to touch, in what order, what to say
- capturinga real browser replays that plan, with no model in the loop
- capturingtyping at 45ms per keystroke, recorded at 60fps
- compositingcamera beats resolved from the pointer’s measured arrivals
- compositingmotion blur on the moves only, never on a held frame
- compositingnarration and captions muxed onto the timeline
- uploadingfinal.mp4 to object storage
- doneready to watch
The phases above are the real state machine, in order — queued and done are its bookends, and the work between them is what your job page prints live, with elapsed time, as your demo is built.
Why it looks right
A camera language, not a zoom effect
The camera goes where the pointer goes, and it only moves because the pointer moved. Watch the rig below: the frame chases the cursor, and it re-anchors only once the cursor has left the dead zone.
- 1.00×1.35×
camera framefollow dead zone - 01
Every move is motivated
No drifting, no breathing, no fidgeting. A hold with nothing to look at rests genuinely still.
- 02
1.8× is a hard ceiling
One zoom per beat, every beat clamped, and a return to a full uncropped 1× when the subject is done.
- 03
Smooth, cinema-style camera moves
When the camera moves, the frames blur the way a film camera blurs them. When it holds, they stay perfectly sharp — so nothing smears and captions stay readable.
A 180° shutter, velocity-gated: below a threshold of travel a frame renders at a single instant.
- 04
Deterministic re-renders
The plan is a stored artifact. Re-rendering a finished demo produces the same video; only re-capturing needs the browser again.
Point.
01 · you paste a URL and one line of intent
Click.
02 · a real browser walks the flow, recorded at 60fps
Filmed
03 · motivated zooms, a tracked cursor, narration
Pricing
Free to start. Pro when a demo has to carry your brand.
No card to start, and the free tiers have no trial clock — they are bounded by a daily cap, not a paywall. Pro’s monthly plan offers a 7-day free trial, and that one takes a card.
Guest
- Demos / day
- 3
- Capture
- Standard 1080p
- Library
- This browser
- Account
- None
- Price
- $0
No account, no card, no download. Start from this page and never see a sign-in screen.
Free
- Demos / day
- 10
- Capture
- Standard 1080p
- Library
- Any browser
- Account
- Price
- $0
Everything you already made as a guest moves with you. Nothing to re-make.
Pro
- Demos / day
- 10
- Capture
- High + Ultra 4K
- Library
- Any browser
- Account
- Price
- US$29 / mo
7-day free trial, then US$29/month.
Your brand colour, your narration voice, and no “Made with Demofy” card at the end. US$290 a year is 2 months free. Per workspace, not per seat.
See Pro plansThis page was the demo.
Everything it just did to itself, it will do to your app. One URL, one sentence, no account.
Point Demofy at your appOne take · no edits