# Your demo re-shoots itself when your product changes.

Self-maintaining demo videos

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.

- [Claude Code](https://demofy.io/agent-setup/claude-code)
- [Codex](https://demofy.io/agent-setup/codex)
- [Cursor](https://demofy.io/agent-setup/cursor)
- [OpenCode](https://demofy.io/agent-setup/opencode)

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 real Demofy demo — Wikipedia, 17.7s, nothing cut. [Open it on its own page](https://app.demofy.io/s/0o7gZghwIM3iDHoFI2QvuQ)

1.00×

rest · full frame

1.35×

focus · the form

1.80×

click · the button

1.00×

rest · full frame

1.35×

focus · the result

A camera plan, drawn — not captured frames. The scales are the ones the compositor uses.

[How an AI product demo maker and video generator films this from a URL](https://demofy.io/product-demo-video-generator)

Have a link already? [Turn a URL into a demo video](https://demofy.io/url-to-demo-video)

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.

1. 01

   ### A plan is recorded
2. 02

   ### Your app moves
3. 03

   ### The capture stops
4. 04

   ### It re-shoots itself

Automatic, and once per demo — never a retry loop. The old version is never overwritten, so a link you already sent keeps playing.

- 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.

Where that pays off, job by job: [product demo video use cases](https://demofy.io/use-cases)

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.

1. 01

   ### Discovery

   A model reads your app one screen at a time and writes the plan — the only half that calls one.
2. 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 planning a single step again.

   The file is demoscript.json: discovery writes it, and the second half only replays it.
3. 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.

Two halves that never call each other. The plan is the only thing that crosses — which is why a re-render costs no model spend and never re-plans.

1. queued — job accepted, quality tier locked for the run
2. discovering — a numbered digest of every interactive element on the page
3. discovering — shot list written: which controls to touch, in what order, what to say
4. capturing — a real browser replays that plan, with no model in the loop
5. capturing — typing at 45ms per keystroke, filmed for a 60fps cut
6. compositing — camera beats resolved from the pointer’s measured arrivals
7. compositing — motion blur on the moves only, never on a held frame
8. compositing — narration and captions muxed onto the timeline
9. uploading — final.mp4 to object storage
10. done — ready 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.

The same job by hand, step by step: [how to make a product demo video](https://demofy.io/how-to-make-a-product-demo-video)

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

  ### Re-renders replay the plan

  The plan is a stored artifact. Re-rendering a finished demo replays its steps with no model call; only a re-shoot explores the app anew.

Point.

01 · you paste a URL and one line of intent

Click.

02 · a real browser walks the flow, rendered 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

US$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

Email

Price

US$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

Email

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 plans](https://demofy.io/upgrade)

[The full comparison, and what happens if you cancel](https://demofy.io/pricing)

[Demofy compared to the alternatives](https://demofy.io/compare)

## This 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 app](https://demofy.io/create)

One take · no edits

Canonical page: https://demofy.io/
