Skip to content

deploy

Deploy a site to a live URL. Supports single HTML files and multi-file sites. The deploy goes live immediately.

Annotations

AnnotationValue
readOnlyHintfalse
destructiveHintfalse
openWorldHinttrue

Parameters

NameTypeRequiredDescription
htmlstringNo*Full HTML content for single-file deploys
filesarrayNo*Files for multi-file deploys (see below)
slugstringNoURL slug (lowercase, hyphens only). Becomes {slug}.based.page. Generated if omitted.
titlestringNoPage title — used for the browser tab, search results, and the auto-generated social sharing preview image. Always provide this.
descriptionstringNoMeta description — shown in search results and on the social sharing preview image. Always provide this.
faviconstringNoFavicon emoji (e.g. 🚀). Shown in the browser tab and as a watermark on the social sharing preview image. Defaults to .
is_spabooleanNoSet true for single-page apps with client-side routing. Enables 404→index.html fallback.
protectbooleanNoMake the page private. Returns a share_url for sharing access.
passwordstringNoOptional password for a typed-password gate in addition to the share link.

*Either html or files is required.

files array format

Each file entry:

FieldTypeRequiredDescription
pathstringYesFile path relative to site root (e.g. index.html, css/style.css)
contentstringYesFile content (UTF-8 text or base64 for binary files)
contentTypestringYesMIME type (e.g. text/html, text/css, image/png)
encoding"utf-8" | "base64"NoUse "base64" for binary files. Defaults to "utf-8".

Return format

Deployed successfully!

URL: https://my-site.based.page
ID: abc123
Slug: my-site

Single-file Example

User prompt:

"Deploy a landing page for my app called Acme at acme-launch"

What Claude does:

  1. Calls list_styles or use_template to get a starting point (or generates custom HTML).
  2. Customizes the HTML with "Acme" branding.
  3. Calls deploy with the HTML, slug: "acme-launch", title: "Acme", and a short description.
  4. Returns: "Your page is live at https://acme-launch.based.page"

Multi-file Example

User prompt:

"Deploy a site with index.html, about.html, and a shared stylesheet."

What Claude does:

  1. Generates the HTML files and CSS.
  2. Calls deploy with a files array containing all three files.
  3. Returns the live URL.

React / SPA Example

User prompt:

"Deploy a React app with client-side routing."

What Claude does:

  1. Generates an HTML file with esm.sh React imports.
  2. Calls deploy with is_spa: true.
  3. All 404 requests fall back to index.html, enabling React Router.

Notes

  • Metadata is injected automatically. title, description, favicon, and OG tags (including og:image) are injected into the HTML at deploy time. Always pass these fields.
  • Social preview image is generated at based.page/og/{slug} using your title, description, and favicon. Pre-generated in the background so it's ready when the link is shared.
  • No build step. HTML is served as-is. Use CDN links (Tailwind, Alpine, esm.sh) for frameworks.
  • Slug rules. Slugs must be lowercase and may contain hyphens. If the slug is taken, the deploy fails with a conflict error.
  • html and files are mutually exclusive. Use one or the other per deploy call.
  • is_spa is only needed for apps with client-side routing (React Router, Vue Router, etc.).

Deploy apps from conversation.