Skip to content

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 the site_* tools listed below.
  • The Benchy CLI. benchy site publishes 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 toolWhat it does
site_check_nameSays whether a name is free, and if not, why
site_createReserves a name. The site serves nothing until a deploy
site_list, site_getThe workspace's websites; one site with its recent deployments and changes
site_deploy_prepare, site_deploy_begin_upload, site_deploy_finalizeDeploy from a manifest of paths, SHA-256 digests and sizes. Only files the workspace does not already hold are uploaded
site_deploy_inlineFor agents that cannot read files: send the file contents directly
site_deploy_canvasCompiles a canvas you own into a website of the same workspace. It publishes a preview unless you ask to go live
site_rollback, site_unpublishPut 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 CLI
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 once

When 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

  1. 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.
  2. Go live. A production deploy replaces the live site at once, after the safety checks below pass.
  3. 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.

KindExtensions
Documentshtml, txt, xml, json, webmanifest, pdf
Styles and scriptscss, js, mjs, map, wasm
Imagessvg, png, jpg, jpeg, gif, webp, avif, ico
Fontswoff, woff2, ttf, otf
Audio and videomp4, 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. /about serves the file /about, then redirects to /about/ when /about/index.html exists, then tries /about.html.
  • An address with no file shows your /404.html with 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

LimitValue
Files in one deploy1,000
One file25 MB
All files in one deploy100 MB
One inline deploy (agents that cannot read files)100 files, 5 MB in total
Deploys per workspace30 an hour and 200 a day
Deploys in progress for one website3
Time to finish uploading a deploy1 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:

PlanWebsites per workspace
Free3
Benchy Pro10
Pro Plus25
Benchy Max100
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_name tells 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, localStorage or sessionStorage value 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.