# Publish, preview and roll back

> Choose an address, preview a change, put it live, and go back to any earlier version.

Canonical: https://benchy.world/docs/websites/publish
Last updated: 2026-10-28

## Choose an address [#address]

A website’s name is its address: `olive-prints` is `https://olive-prints.benchy.site/`. You choose it the first time you publish, and Benchy checks it as you type.

- 3 to 40 characters of lowercase letters, digits and single hyphens, starting and ending with a letter or digit.
- Some names are reserved: Benchy’s own, service words such as `www`, `mail` or `login`, well-known brands, and names built to look like sign-in, payment or support pages.
- Each name is used once across all of benchy.site.
- An address can’t be renamed. To move, publish a new website and take the old one offline, or use [your own domain](https://benchy.world/docs/websites/custom-domains).

Reserving a name publishes nothing. Each website shows one of four states:

| State | What it means |
| --- | --- |
| Not published yet | The address is reserved. It shows nothing until the first deploy |
| Live | Visitors get the live version |
| Offline | Taken offline by someone in the workspace. Versions and address are kept. The CLI and agents call this state unpublished |
| Suspended | Taken offline by Benchy. See [Safety and search](https://benchy.world/docs/websites/safety#suspension) |

## Preview, then go live [#preview-and-live]

- **A preview** gets its own address, such as `olive-prints--k3n8q2xa.benchy.site`, and leaves the live website as it was. Anyone with the address can open it. Previews last 7 days, stay out of search engines, and go offline with the website; an offline website takes no new preview. A custom domain only ever shows the live version.
- **Going live** replaces the live website with the new version in one step, once the [safety checks](https://benchy.world/docs/websites/safety#checks) pass, so visitors never see a mix of two versions. If two people go live at about the same time, the one started last stays live and the other is kept as a version.

Only changed files are uploaded. Agents publish a preview first and go live only when you say so.

Editable content and forms come from the version’s `benchy.site.json`. See [Editable content and forms](https://benchy.world/docs/websites/content-and-forms).

## Publish from Studio [#studio]

A project’s page lists its websites under **Websites**, where **New website** makes one; websites that belong to no project are listed on the Projects page. A website’s page has six sections: **General**, **Pages**, **Versions**, **Domains**, **Content** and **Forms**.

- Studio publishes a canvas; see [Publish a canvas](#canvas). A folder of files is published with `benchy site deploy` or by an agent.
- **Versions** lists the published versions, each with **View** and **Restore**, and **Previews** lists each working preview with **Open preview** and when it expires.
- **Take offline**, in the Danger zone under **General**, takes the website down, and **Put back online** restores the version it had.
- **Delete website**, also in the Danger zone, is for the website’s owner: the workspace’s Owner, or its project’s owner.

## Publish a canvas [#canvas]

On the canvas, choose **Publish**, then **Website**, pick a website or **New website**, and choose **Publish a preview** or **Go live**. Its Pages, text, images and videos become the website’s files. Only the canvas’s owner can publish it, to a website of the canvas’s project or one with no project yet, which then takes the canvas’s project. An archived canvas can’t be published, and archiving or deleting a canvas leaves its website online.

- **Website settings** in the dialog holds the title, description, link-preview image and tab icon. With no link-preview image, links show the first picture; with no tab icon, there is none. The home page describes the website to search engines as structured data.
- If the live version didn’t come from this canvas, **Go live** first asks **Replace what’s live?**
- A canvas outside any project, published to a new website, is moved into a new project named after it.
- After a publish, the dialog notes what the website shows differently from the canvas. See [Notes after a canvas publish](https://benchy.world/docs/websites/troubleshooting#canvas-notes).

The website’s page in Studio links to the canvas it was built from, where you change it and publish again. In a chat on the canvas you can also ask Benchy to “put this canvas on my website”: it shows a card every time, naming the website and its address, and publishes a preview unless you asked to go live.

**Instant link**, the other choice under **Publish**, puts the canvas up as one page at an address Benchy picks, with nothing to set up. It has no versions, previews, custom domains or working forms; choose **Website** for those.

## Publish from the CLI [#cli]

[Install the CLI](https://benchy.world/docs/apps-and-cli#install) and give it an API key with **Publish websites** access, made in Studio under **Profile → API keys**.

shell

```
benchy site create olive-prints                            # reserve olive-prints.benchy.site
benchy site deploy ./dist --site olive-prints --preview    # publish a preview; prints its address
benchy site deploy ./dist --site olive-prints              # publish to the live address
benchy site list                                           # every website in the workspace
benchy site get olive-prints                               # state, versions, previews and recent changes
benchy site rollback olive-prints --yes                    # the version before, live again
benchy site unpublish olive-prints --yes                   # take it offline
```

- Without a folder or `--site`, `deploy` reads the project’s `BENCHY.md`. See [The Website section of BENCHY.md](https://benchy.world/docs/websites/building#benchy-md).
- `deploy` checks the limits before uploading, and skips hidden files (except `.well-known`), links, and `CNAME`, `_headers` and `_redirects` files meant for other hosts.
- `--json` prints the result for scripts; `rollback --to` takes a version id from `get`. `rollback` and `unpublish` change what visitors see at once, so they need `--yes`.

Content, forms and custom domains have their own commands: `benchy site content`, `benchy site forms` and `benchy site domain`. Connecting a domain needs a key that can change the whole workspace. Deleting a website is done in Studio.

## Publish from your agent [#mcp]

Any [connected agent](https://benchy.world/docs/connect-your-agent) can check whether a name is free, reserve it, list your websites, deploy a preview or a live version, roll back and take a website offline. Ask for what you want — “publish a preview of the website” — and it picks the tools.

- An agent that can’t read files, such as one in ChatGPT, sends the files’ contents directly, which takes a smaller website: see [Deploy limits](https://benchy.world/docs/websites/plans-and-limits#deploy-limits).
- An agent can publish a canvas you own, as a preview unless you ask it to go live.
- What it may do depends on its key or connection. See [Who can publish and change a website](https://benchy.world/docs/websites/access).

## Versions and history [#versions]

**Versions** on the website’s page lists the 20 newest published versions and the live one; `benchy site get`, or your agent, also shows previews and recent changes, each with who made it and how. Every live version is kept as long as the website exists, with shared files stored once; an older one than the 20 listed can be put live by its id. Every deploy, rollback, offline switch, domain change and content save is in the history.

## Put an earlier version live [#rollback]

In Studio, choose **Restore** on any version under **Versions**; it is live at once. `benchy site rollback` puts the version before the live one back, or the one named with `--to`. Rolling back an offline website brings it back, as **Put back online** does.

The safety rules apply again as they are today: a version linking to a page now flagged as unsafe can’t go live, and neither can one your current plan wouldn’t publish.

## Take a website offline [#unpublish]

**Take offline** in Studio, or `benchy site unpublish`, takes the website and its previews down on every address, custom domains included, within a minute. Visitors see “Not published”, and their browsers are asked to clear what it stored. The name, versions, domains, content and form entries are kept: **Put back online**, roll back or deploy to return.

## Delete a website [#delete]

Only the workspace’s Owner can delete a website, under **Delete website** in the Danger zone of its page in Studio. Type the name to confirm. Deleting takes it offline, releases its custom domains and cancels any publish still uploading. A suspended website can’t be deleted. Purging a project from the Trash deletes its websites the same way. Deleting is permanent:

- Its versions, previews, content and form entries are deleted.
- Its files leave the workspace’s storage within a day.
- Its name stays reserved to the workspace, so you can create a new website with it.
