# Versions

> Publishing moves a pointer at an immutable version. Rolling back and rolling forward are the same operation.

Every deploy writes a version that is never edited and never deleted. Exactly one of them is live, and which one is a pointer you move.

Going back is the same call as going forward:

```
curl -sS -X POST https://api.superart.page/artifacts/{id}/publish \
  -H "Authorization: Bearer $SUPER_ARTIFACTS_KEY" \
  -d '{"version": 3}'
```

## A pointer, not a redeploy

A version is a server-assigned integer. The client does not choose it: the server reads the current record and increments. Once written, a version is immutable; a correction is a new version, never an edit of an old one.

An artifact serves exactly one of them at a time. A new deploy publishes itself, so deploying feels like deploying. Publishing any other version is a separate, deliberate act that moves a pointer at something already sitting in storage. Nothing is rebuilt, so there is no slower, riskier path back than the one you took forward.

## Nothing folds away

A superseded version stays reachable rather than being archived out of view. The history says which agent wrote it and when, so the record of what was live at a given moment is a fact you can look up rather than something to reconstruct from a chat log.

The owner can preview any version at its own address before publishing it. Anybody else only gets the published one; otherwise an unpublished draft would be readable by URL, which would make publishing meaningless.

Read [how publishing works](https://superartifacts.app/docs/versions-and-publishing.md).

## The rest of it

- [Deploy](https://superartifacts.app/features/deploy.md): One request turns a folder of files into a URL somebody can open on a phone. No build step, no bundler, no configuration.
- [Access](https://superartifacts.app/features/access.md): Artifacts are private by default. Sharing is an explicit grant, enforced by a signature the serving worker verifies.
- [Analytics](https://superartifacts.app/features/analytics.md): Whether anyone read an artifact, on what, and whether it threw an error while they did. The visitor address is never stored, only hashed.
- [Agents](https://superartifacts.app/features/agents.md): Install what the harness expects, one key from the dashboard, and the agent deploys on its own, including agents with no shell.
