Publish a website on benchy.site
Publish a static site or browser app at <name>.benchy.site from Studio, your own agent, the CLI, or Benchy Desktop.
What benchy.site is
benchy.site hosts static websites. You build a site or a browser app, publish its files, and Benchy serves them at https://<name>.benchy.site/. Benchy gives the site an address, a CDN and a version history; it never runs your code on its servers.
Every website belongs to a Benchy workspace. Anyone who can edit that workspace can publish its websites. Reserving a name publishes nothing: the address shows nothing until the first deploy.
Ways to publish
- Studio. On a canvas, open Publish, then Manage website, to publish the canvas at a benchy.site address.
- Your own agent. Connect any MCP client to
https://mcp.benchy.studio/api/mcp(see Connect your agent) and it can use thesite_*tools listed below. - The Benchy CLI.
benchy sitepublishes a folder you have already built. - Benchy Desktop. Start from the Website Starter, a one-page site in plain HTML and CSS with no build step, and publish it with the Benchy Websites plugin. The plugin supplies the
site_*tools and skills for starting, editing and publishing a site. It also installs in Claude Code, Codex and Cursor.
| MCP tool | What it does |
|---|---|
site_check_name | Says whether a name is free, and if not, why |
site_create | Reserves a name. The site serves nothing until a deploy |
site_list, site_get | The workspace's websites; one site with its recent deployments and changes |
site_deploy_prepare, site_deploy_begin_upload, site_deploy_finalize | Deploy from a manifest of paths, SHA-256 digests and sizes. Only files the workspace does not already hold are uploaded |
site_deploy_inline | For agents that cannot read files: send the file contents directly |
site_deploy_canvas | Compiles a canvas you own into a website of the same workspace. It publishes a preview unless you ask to go live |
site_rollback, site_unpublish | Put an earlier version live again; take the site offline |
Reading a site needs no extra permission. An API key that should only publish websites can be given the websites:deploy permission and limited to one website; such a key cannot create new websites.
benchy site create <name> # reserve <name>.benchy.site; serves nothing yet
benchy site deploy [folder] --preview # publish to a separate preview address
benchy site deploy [folder] # publish to the live address
benchy site list # every website, its state and address
benchy site status [name] # state, live deployment, recent deployments
benchy site rollback [name] # previous version live again (or --to <deploymentId>)
benchy site unpublish [name] --yes # take the site offline at onceWhen a project has a BENCHY.md with a ## Website section, benchy site deploy takes the site name and output folder from it.
Preview, live, rollback
- Preview first. A preview deploy gets its own address,
<name>--<id>.benchy.site, and leaves the live site as it was. Previews last 7 days and are always kept out of search engines. - Go live. A production deploy replaces the live site at once, after the safety checks below pass.
- Roll back or unpublish. Rollback puts an earlier version live again at once. Unpublish takes the site and its previews offline at once; its versions and name are kept, so a rollback or a new deploy brings it back.
What a site can contain
A Benchy website serves files. There are no server functions, API routes, server-side rendering, database or visitor sign-in, and no secrets at request time: a key in a published file is a leaked key. JavaScript that runs in the visitor's browser works, and a framework build works if you run the build yourself and publish its output folder.
Only these file types can be published. The served content type comes from this list, never from the uploader; any other extension is refused when you deploy.
| Kind | Extensions |
|---|---|
| Documents | html, txt, xml, json, webmanifest, pdf |
| Styles and scripts | css, js, mjs, map, wasm |
| Images | svg, png, jpg, jpeg, gif, webp, avif, ico |
| Fonts | woff, woff2, ttf, otf |
| Audio and video | mp4, webm, mp3, wav |
- Paths are at most 256 bytes, with no empty,
.or..segments and no hidden files or folders except a top-level.well-known. /about/serves/about/index.html./aboutserves the file/about, then redirects to/about/when/about/index.htmlexists, then tries/about.html.- An address with no file shows your
/404.htmlwith status 404, or a plain 404 if there is none. - PDFs download rather than open in the browser.
- Service workers are not served, and sites answer only GET and HEAD requests.
Limits
| Limit | Value |
|---|---|
| Files in one deploy | 1,000 |
| One file | 25 MB |
| All files in one deploy | 100 MB |
| One inline deploy (agents that cannot read files) | 100 files, 5 MB in total |
| Deploys per workspace | 30 an hour and 200 a day |
| Deploys in progress for one website | 3 |
| Time to finish uploading a deploy | 1 hour |
Sizes are binary: 1 MB here is 1,048,576 bytes. Deploying a canvas also counts against a separate canvas budget of the same size. Website files count toward your workspace's storage allowance.
The number of websites a workspace can have depends on its plan:
| Plan | Websites per workspace |
|---|---|
| Free | 3 |
| Benchy Pro | 10 |
| Pro Plus | 25 |
| Benchy Max | 100 |
| Benchy Business (no longer sold) | 25 |
Names
- A name is 3 to 40 characters of lowercase letters, digits and single hyphens, and starts and ends with a letter or digit.
- Some names are reserved: Benchy's own, common service and system words, well-known brands, and names built to look like sign-in, payment or support pages.
- A name is unique across all of benchy.site, including addresses already used by published canvases.
site_check_nametells you which rule a name fails.
Search engines
Benchy sends X-Robots-Tag: noindex, which keeps a page out of search results, for:
- every preview address;
- a new website on the Free plan, for 14 days after its name is reserved;
- a website whose deploy was flagged for review: a page with a password field, a form that submits to another site, a very long link, or, on a paid plan, a deploy that could not be checked completely.
Cookies and storage
Every website shares the parent domain benchy.site, and Benchy's own sign-in never reaches it. Until benchy.site is on the Public Suffix List, a script on one site can set a cookie for .benchy.site that every other site receives.
- Do not treat a cookie,
localStorageorsessionStoragevalue as trustworthy. Use them only for things a visitor can harmlessly change, such as a remembered theme. - Do not set a cookie on the parent domain, and do not rely on reading one set there.
Custom domains
Custom domains are coming but are not available yet. Today a website answers only at its benchy.site addresses.
Safety checks and suspension
Every deploy is checked before it goes public. Benchy reads the links and form targets in its HTML, SVG and XML files and checks them, along with the site's own address, against Google Web Risk.
- A deploy that links to a page Web Risk flags as unsafe is not published.
- If the check cannot run, a production deploy is not published; try again a few minutes later.
- On the Free plan, a deploy that could not be checked completely is not published. Split very large pages, or pages with a great many links, and deploy again.
- Published sites are checked again every day. If a version being served is flagged, the site is suspended.
Benchy can also suspend a website that breaks its rules. A suspended site shows a page saying it was taken offline, with HTTP status 451. While any website in a workspace is suspended, that workspace cannot create websites, deploy, or put a version live; taking a website offline still works.
Acceptable use and abuse
Websites on benchy.site follow the Benchy Terms of Service. You may not use them for any unlawful purpose, to infringe others' intellectual property, to distribute malicious content, or to interfere with the service.
Use ← and → to move between pages.