Version history for your prototypes.

Every save stays live, so you can see what changed, compare, and go back.

v0.1.1

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.

What you get

Look back

Every save stays live, ready to open and compare.

See what changed

Every change is outlined on the page, and a list of changes takes you through them one by one.

Every version, still working

Each version is the real prototype as it was saved, not a screenshot. It still clicks, scrolls and runs.

Compare any two

Put two versions side by side, or drag a wipe across them.

Share it

The history deploys with your prototype.

Share the history

Deploy the prototype, and anyone with the link gets every version at /afterimage/.

Previews carry their own

Each preview deployment carries the versions saved on its branch.

Made for your agent

One prompt sets it up. After that, ask in plain words, and your agent saves versions as you go.

How it works

  1. 1

    Set up

    Paste the setup prompt into your agent, or run npx afterimage init after installing.

  2. 2

    Save

    Ask your agent to save a version. It runs afterimage save, and the prototype as it is now becomes the next version.

  3. 3

    Look back

    Open /afterimage/ on localhost while you work, or on your deploy to share it.

Prompts to try

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.

Questions

Does it slow my prototype down, or add weight to it?

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.

History size ↗
Where are the versions kept?

In your project, in the afterimage/ folder, which you commit with your code. There’s no server and no account.

Do I need git or a host?

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.

Deploying ↗
Which frameworks does it work with?

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.

Limits ↗
Can my team see the versions?

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.

Preview deployments ↗
Does it work without an agent?

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.

Manual setup ↗

Start with one prompt.

Works with plain HTML, Vite, Next.js with a static export, Astro, and SvelteKit with adapter-static.