Sharing and embedding
One link per demo, revocable in a click, and an iframe snippet that dies with it. What the link is, and what it is not.
Press Share on a job page and you get one link. Anybody who has it can watch the demo; nobody who does not can. Press Revoke and it stops working everywhere at once.
The token IS the credential
The link ends in a long random token. There is no other check: the page reads no session, asks for no account, and shows the video to whoever arrives with the right token.
That has three consequences worth stating plainly.
- Treat the link like a password. Anyone you send it to can forward it.
- It is never indexed. Share pages carry a
noindexheader and the path is disallowed inrobots.txt, because a share URL in a search index is a leaked video. - Unknown, revoked and not-yet-finished are one answer: 404. A different response for a token that exists would confirm that it exists.
Every part of the page obeys the same gate — the caption track, the poster image and the progress beacon all re-take the same check, so a 404 on the page beside a 200 on a subresource can never give the token away.
Minting is idempotent
Pressing Share on a demo you already shared returns the same link. A button that silently rotated a URL you had already pasted into a thread would be a trap. If you want a new one, revoke and share again — that is what rotation is.
Revoking needs no cleanup anywhere: the token is cleared from the row, and a cleared token matches nothing.
What the share page shows
The video, its title, a download link and a quiet "Made with Demofy". If the workspace has an outro call to action, it appears as the page's one prominent button — that is your ask, not ours.
It shows no owner, no workspace, no other videos and no way to reach your library. It also has no comments and no reactions.
The description on a link unfurl says "A demo shared with Demofy" rather than "made with", because an import is somebody else's file and a social card is not the place to over-claim provenance. The preview image is the demo's own poster frame, served through this origin so it does not expire the way a signed artifact URL would.
Embedding
The share popover carries an <iframe> snippet. It is this page in a frame and adds no second
route, no second token and no second permission:
- Revoking the link takes down every embed of it, everywhere, in one action.
- An embedded page is never indexed, for the same reason the page is not.
- The box is percentage padding rather than a fixed width and height, because the destination is somebody else's CMS and the column width is unknowable. It reads the shipped file's measured shape, so a portrait demo gets a portrait box.
Demofy sets no framing restriction on share pages, which is what makes the snippet work at all.
Downloading
The Download control presigns the file with a filename header rather than relying on the HTML
download attribute, which browsers ignore across origins. Before that change the link opened a
player instead of saving.
The written guide is downloadable the same way, from the overflow menu.
What sharing is not
- Not a permission. Sharing does not add anyone to your workspace, and a viewer cannot edit, re-render, rename or delete anything.
- Not a publish step. The video is not listed anywhere, submitted anywhere or announced anywhere.
- Not an analytics opt-in for the viewer. What is counted is described on Audience analytics, and the short version is that no viewer is recorded at all.