Deploy HTML

Deploy a single HTML file or a directory containing an index.html. Perfect for AI-generated artifacts, prototypes, and quick demos.

Where do HTML artifacts come from?

Most static deploys to Leash start life as a generated HTML file from an AI tool:

  • Claude.ai Artifacts
  • ChatGPT Canvas
  • Lovable / v0 / Bolt / similar AI generators

Got a generated artifact? Save it as index.html (and app.js, styles.css if separate), then:

Terminal

$ leash deploy

Prototype mode

Artifacts from AI tools deploy with a prototype flag set on the app record so Leash can treat them as exploratory rather than production. Today this lives in the database (apps.is_prototype) and behaves the same as a regular static deploy.

Customer-visible surfaces are coming:

  • A future deployed-app UI will show a prototype marker on the URL.
  • An upcoming CLI flag will let you opt out of prototype mode at deploy time (and the dashboard will let you flip the flag after the fact).
  • Billing behavior for prototypes will be defined as the feature ships.

For now, deploys behave the same regardless of the flag — track each surface in Linear as it lands.

Single file

Use the --html flag to deploy any standalone HTML file.

Terminal

$ leash deploy --html artifact.html

✓ Deployed static site

→ https://artifact-your-org.un.leash.build

Directory with index.html

If your directory contains an index.html, Leash auto-detects it as a static site. No flags needed.

Terminal

$ cd my-static-site

$ leash deploy

✓ Detected static site

✓ Deployed successfully!

→ https://my-static-site-your-org.un.leash.build

Example

A minimal HTML file is all you need to get a live site:

index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>My App</title>
</head>
<body>
<h1>Hello from Leash!</h1>
</body>
</html>

Tip: AI-generated artifacts

When Claude Code, ChatGPT Canvas, or any AI tool generates an HTML artifact, save it to a file and deploy it in one command. Great for sharing interactive visualizations, dashboards, and prototypes with teammates.