See what changed
Every change is outlined on the page, and a list of changes takes you through them one by one.
Every save stays live, so you can see what changed, compare, and go back.
A looping demo of someone using Afterimage. An agent marks the Team plan as the most popular on a pricing page prototype and saves it as version 3. Highlight outlines the change. Versions 2 and 3 are compared with a wipe, dragged back and forth across the changed card, then side by side. Version 1 is opened, where its annual billing toggle still works.
Every save stays live, ready to open and compare.
Every change is outlined on the page, and a list of changes takes you through them one by one.
Each version is the real prototype as it was saved, not a screenshot. It still clicks, scrolls and runs.
Put two versions side by side, or drag a wipe across them.
The history deploys with your prototype.
Deploy the prototype, and anyone with the link gets every version at /afterimage/.
Each preview deployment carries the versions saved on its branch.
One prompt sets it up. After that, ask in plain words, and your agent saves versions as you go.
Paste the setup prompt into your agent, or run npx afterimage init after installing.
Ask your agent to save a version. It runs afterimage save, and the prototype as it is now becomes the next version.
Open /afterimage/ on localhost while you work, or on your deploy to share it.
Once it’s set up, ask in plain words.
Save a version called Remember me with a note that it keeps people signed in for 30 days.
What changed since v2?
Get the version history ready to deploy.
Your app is built and served as before, and the service worker that loads old versions only runs under /afterimage/. The history sits beside your app: every version is a full copy of the build, from a few KB for plain HTML to about 1 MB for a Next.js export, and each save prints the total.
In your project, in the afterimage/ folder, which you commit with your code. There’s no server and no account.
Not to start: npx afterimage dev shows the history on localhost. To share it, deploy to any static host; init writes the config for Vercel and Netlify. Commit afterimage/ so the history travels with the project.
Anything that builds to static files: plain HTML, Vite, Next.js with output: 'export', Astro with static output, and SvelteKit with adapter-static. Apps that render their pages on a server aren’t supported.
Yes. Deploy the prototype and anyone with the link gets every version at /afterimage/, and each preview deployment carries the versions saved on its branch. That also makes every saved version public, so save what you’d show.
Yes. The agent only runs the commands for you: install it, run npx afterimage init, then npx afterimage save "Name" whenever you want a version.
Works with plain HTML, Vite, Next.js with a static export, Astro, and SvelteKit with adapter-static.