Publish, preview and roll back
Choose an address, preview a change, put it live, and go back to any earlier version.
Choose an 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,mailorlogin, 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, including every address a published canvas has ever had.
- An address can’t be renamed. To move, publish a new website and unpublish the old one, or put the site on your own domain.
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 |
| Unpublished | Taken offline by someone in the workspace. Versions and address are kept |
| Suspended | Taken offline by Benchy. See Safety and search |
Preview, then go live
- A preview gets its own address, such as
olive-prints--k3n8q2xa.benchy.site, and leaves the live site as it was. Previews last 7 days, are kept out of search engines, and go offline with the site if you unpublish it. A custom domain always shows the live version, never a preview. - Going live replaces the live site with the new version in one step, after the safety checks pass. Visitors never see half of one version and half of another.
Only files that changed are uploaded: Benchy compares each file’s fingerprint with the files the workspace already holds, so republishing an unchanged folder uploads nothing. Agents publish a preview first and go live only when you say so.
Content and forms come from the version’s benchy.site.json. A version deployed without it serves no content until a deploy that has the file; the content itself is kept. See Content and forms.
Publish from Desktop
- In a website project, choose Publish in the project’s header.
- The first time, choose the address. Desktop reserves it and adds it to the project’s
BENCHY.md. - Choose Preview or Go live. The chat shows the result with its address, and Open shows it in the page viewer.
Desktop publishes the project’s Output folder exactly as it is on disk. For a framework site, run the build first. You can also ask the agent in the chat to publish; it shows a card naming the address, and going live asks every time, whatever you allowed earlier in the chat.
Publish from Studio
Every website in the workspace is listed under Websites in Studio. A website’s page shows its address and state, then its versions, custom domains, content, forms and settings.
- Publish uploads a folder from your computer as a preview or as the live version.
- Roll back, Unpublish and Delete are on the same page.
Publish a canvas
A canvas publishes to a website in its own workspace. On the canvas, choose Publish, then Website, pick the website or create one, and choose Preview or Go live. Its pages, text, images and videos become the website’s files. Only the canvas’s owner can publish it.
In a chat on the canvas, ask Benchy to “put this canvas on my site”. Benchy shows a card every time, naming the website and its address; it publishes a preview unless you asked to go live.
A canvas published before websites existed keeps its old random address, which opens the canvas’s page on Benchy Studio.
Publish from the CLI
Install the CLI and give it an API key with Publish websites access, made in Benchy Studio under Profile, then API keys. Keep the key in a file only you can read:
npm install -g @benchystudio/cli
printf '%s' 'bnchy_…' > ~/.config/benchy/key && chmod 600 ~/.config/benchy/key
export BENCHY_PAT_FILE="$HOME/.config/benchy/key"benchy site create olive-prints # reserve olive-prints.benchy.site
benchy site deploy site/ --preview # publish a preview; prints its address
benchy site deploy site/ # publish to the live address
benchy site list # every website in the workspace
benchy site status olive-prints # state, live version, recent versions and changes
benchy site rollback olive-prints # the previous version, live again
benchy site unpublish olive-prints --yes- Without a folder or
--site,deployreads the project’sBENCHY.md. See The Website section of BENCHY.md. deploychecks the limits before uploading anything, skips hidden files (except.well-known) and links, and skipsCNAME,_headersand_redirectsfiles meant for other hosts.--jsonprints the result for scripts;rollback --totakes a version id fromstatus.
Custom domains, content and forms have their own commands, on their own pages. Deleting a website is only done in Studio.
Publish from your agent
Any MCP client connected to Benchy (see Connect your agent) has these tools:
| Tool | What it does |
|---|---|
site_check_name | Whether a name is free, and if not, why: syntax, reserved or taken |
site_create | Reserves a name. The address shows nothing until a deploy |
site_list, site_get | The workspace’s websites; one website with its recent versions and changes |
site_deploy_prepare, site_deploy_begin_upload, site_deploy_finalize | A deploy from a list of paths, SHA-256 fingerprints and sizes. Only missing files are uploaded |
site_deploy_inline | For agents that can’t read files, such as ChatGPT: the files’ contents, sent directly |
site_deploy_canvas | Publishes a canvas you own; a preview unless you ask to go live |
site_rollback, site_unpublish | Puts an earlier version live again; takes the website offline |
Versions and history
Versions on the website’s page lists every version, newest first: when it was published, by whom and through what (Studio, Desktop, the CLI, an app or key, or Benchy), its files and size, and its safety check. The live version is marked, and open previews are listed with their addresses. A deploy that failed is listed with the reason.
Every production version is kept for as long as the website exists. Files shared between versions are stored once, so old versions cost little storage. Every change to the website — a deploy, a rollback, unpublishing, a domain — is in its history with the same who and how.
Roll back
Roll back puts the previous version live again at once; choose any other version from Versions to go further back. Rolling back an unpublished website brings it back with the version it had.
The safety rules apply again as they are today: a version that links to a page now flagged as unsafe can’t go live, and neither can one your current plan wouldn’t publish.
Unpublish
Unpublish takes the website and its previews offline at once, on every address including custom domains. Visitors see “Not published”, and their browsers are asked to clear anything the site stored. The name, versions, domains, content and form entries are kept: roll back or deploy to bring it back.
Delete a website
Only the workspace’s Owner can delete a website, in Studio, from the website’s Settings. Type the name to confirm. Deleting can’t be undone.
- Its versions, previews, content and form entries are deleted.
- Its custom domains stop serving and are released for anyone to add again.
- Its files leave the workspace’s storage within a day.
- Its name stays reserved to the workspace: nobody else can take it, and you can create a new website with it.
- A copy on GitHub stays in its repository; Benchy stops writing to it.
Use ← and → to move between pages.