# Deploy an HTML page from a Claude or ChatGPT chat to thin.host

Take an HTML page that Claude or ChatGPT wrote in a chat and get a live, shareable URL for it. thin.host serves the static files and gives you a live URL right away. Your agent can do every step for you through the thin.host MCP server, or you can run one `curl` command.

## At a glance

| Step | an HTML page from a Claude or ChatGPT chat |
|---|---|
| Folder to deploy | the folder that holds `index.html` |
| Deploy | `curl -F file=@index.html -H "Authorization: Bearer $THINHOST_API_KEY" https://thin.host/v1/websites/archive` |
| Live URL | `https://thin.host/s/my-site/`, or your own domain |

## Before you start

- **Requires:** The HTML from the chat (a Claude artifact or a ChatGPT canvas or code block).
- **A thin.host account.** [Sign up](https://thin.host/signup), then create an API key under Settings (for `curl` and the local MCP server), or connect your agent with OAuth as shown in [Quickstart (MCP)](https://thin.host/docs/quickstart-mcp).

## Check your links

Until a domain points at it, a thin.host site lives under a sub-path: `https://thin.host/s/<slug>/`. Chat-generated pages are usually a single self-contained file. Save it as index.html; if it loads images or scripts from relative paths, put those files next to it.

```html
<!-- paste the full HTML from the chat here -->
```

## Deploy from your agent (MCP)

Connect thin.host to Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Codex or ChatGPT once ([setup for each client](https://thin.host/docs/quickstart-mcp)), then ask:

> Save this page as index.html and publish it to thin.host with the slug my-site.

With the local server (`uvx thinhost-mcp`) the agent writes the file and calls `publish_website` with its path. Ask for changes in the same conversation and it pushes them with `update_website`.

The hosted connector (`https://thin.host/mcp`, used by claude.ai and ChatGPT) cannot read your disk. From a coding agent it uploads with the REST call below; otherwise it publishes from a public link to a zip or HTML file with `publish_website_from_url`.

## Deploy with curl

```bash
curl -F file=@index.html -F title="My page" -F slug=my-site \
  -H "Authorization: Bearer $THINHOST_API_KEY" \
  https://thin.host/v1/websites/archive
```

The JSON response includes `url`, the live address (`https://thin.host/s/my-site/`). To redeploy, upload the new file to the site's archive endpoint; pages and assets missing from it are removed:

```bash
curl -F file=@index.html \
  -H "Authorization: Bearer $THINHOST_API_KEY" \
  https://thin.host/v1/websites/my-site/archive
```

A single upload can be up to 30 MB. See the [REST API reference](https://thin.host/docs/api) for every field.

## Add a custom domain

1. Open the site in the [dashboard](https://thin.host/dashboard) and add your hostname under **Custom Domains**, for example `www.example.com`. A `<name>.thin.host` subdomain is free and works immediately.
2. Create the DNS record the dashboard shows: a `CNAME` pointing at `cname.thin.host`. TLS is issued automatically once DNS resolves.

Pages on a custom domain get a canonical tag, a generated `robots.txt` and a `sitemap.xml`.

## An HTML page from a Claude or ChatGPT chat notes

- In Claude, copy the artifact's code (or download it). In ChatGPT, copy the code block or the canvas contents.
- Coding agents (Claude Code, Codex, Cursor) can write the file and publish it in one step: ask them to save the page as index.html and publish it to thin.host.

## FAQ

**Can Claude publish the page straight from claude.ai?**

The hosted thin.host connector publishes from a URL (publish_website_from_url), so the page needs to be reachable at a public link first. Otherwise save it as index.html and upload it with the dashboard or curl.

**Will the page keep working after the chat ends?**

Yes. The site stays live until you delete it, and you can edit the copy in place from the dashboard.

**How large can a site be?**

A single archive upload can be up to 30 MB. The local MCP server (uvx thinhost-mcp) reads the build folder directly and splits large sites across requests, up to 150 MB.

Other frameworks: [all deploy guides](https://thin.host/guides). Coming from another host? [Compare thin.host](https://thin.host/compare).

---
Canonical page: https://thin.host/guides/deploy-ai-chat-html
