# How to Publish AI-Generated HTML Online (5 Ways, Ranked)

> You have HTML from Claude or ChatGPT — now what? Five paths ranked by friction: built-in share, drag-and-drop, CLI, and permanent hosts.

Published: 2026-06-15  
Author: Damjan Malis (Founder, dropthis)  
Canonical: https://dropthis.app/blog/how-to-publish-ai-generated-html-online/

## Key takeaways

- Claude's Publish button and ChatGPT's Canvas share both produce a URL — but it lives on the AI vendor's domain, not yours, and you cannot update the page without a new link.
- Netlify Drop handles a full folder of HTML + CSS + JS files via drag-and-drop, no account needed to get a preview URL.
- surge.sh is the fastest CLI path — one npm install and one command, no browser required, unlimited free sites.
- Free instant hosts either expire (dropthis free tier: 7 days) or require periodic logins to keep links alive — know which before you share.
- For multi-file projects, use a folder-aware host: Netlify Drop or dropthis both handle a folder or zip correctly.

You asked an AI to build a webpage and it delivered — a self-contained HTML file, or a Canvas full of code. Learning how to publish AI-generated HTML online is the last step most guides skip. Now that output is sitting on your screen, and the question is how to turn it into a URL other people can open. This guide ranks five paths by how much friction each involves, covers what the built-in AI share options actually do, and explains what happens to free links over time.

The short answer: if you want a URL in under 60 seconds, drag the file to `drop.netlify.com`. If you want to publish AI-generated HTML directly from a terminal or an AI tool without a browser, use `surge` or `dropthis`. If you want a link that stays live and can be updated in place, keep reading.

## Why AI-generated HTML dies on your clipboard

AI tools produce the code but have no hosting infrastructure. Claude, ChatGPT, and every other AI assistant generate HTML that runs in a browser — but "running in a browser" means the file is loaded from your local disk, not served from a public URL. The moment you close the tab, no one else can see it.

The missing step is a static host: a server that receives your file, stores it, and responds to HTTP requests. In 2026, that step takes under a minute. The friction is not technical — it is knowing which tool to pick for which situation.

## Which method is fastest: does your AI tool already give you a link?

Both Claude and ChatGPT have built-in share features. They are the zero-friction path, but they come with trade-offs worth understanding before you rely on them.

**Claude Publish** generates a permanent URL hosted on `claude.ai`. Anyone with the link can view the artifact — no login required. There is [no expiry](https://support.claude.com/en/articles/9547008-publishing-and-sharing-artifacts), no password option, and published artifacts can be indexed by search engines. You cannot update the page — if you revise the HTML, publishing again creates a new URL. The result is a `claude.ai/public/…` URL, not a URL on any domain you control. For more detail on Claude's share options, see [how to share Claude artifacts](/blog/how-to-share-claude-artifacts/).

**ChatGPT Canvas share** produces a URL on OpenAI's domain — `chatgpt.com/canvas/shared/…`. Viewers see a rendered version of the canvas content. Viewers can also remix it (open it in their own Canvas session for editing). Like Claude Publish, you cannot update the page without creating a new URL, and the link lives on [OpenAI's infrastructure](https://help.openai.com/en/articles/9930697-what-is-the-canvas-feature-in-chatgpt-and-how-do-i-use-it), not yours.

Use the built-in option when: the AI vendor's brand on the URL is fine, you don't need to update the link, and you are sharing with someone who will see it once. For everything else — turning a ChatGPT HTML output to a live website on your own domain, or finding a way to put your AI website online for free without the vendor's branding — keep reading.

## Five ways to publish AI-generated HTML online, ranked by friction

Use this table to match your situation to a tool, then read the prose below for the nuances.

| Tool | How you publish | File/folder | Free link lifetime | Programmatic |
| --- | --- | --- | --- | --- |
| Claude Publish | Click button in UI | Single artifact | Permanent (no expiry) | No |
| ChatGPT Canvas share | Click button in UI | Single canvas | Not documented | No |
| [Netlify Drop](https://docs.netlify.com/start/get-started-with-drop/) | Drag folder/file to browser | Folder or file, no documented per-file cap | Permanent (free account) | Netlify CLI/API |
| [tiiny.host](https://helpdesk.tiiny.host/en/article/pricing-plans-1i3vkky/) | Drag file or zip to browser | 3 MB file, 10 MB zip | Permanent (log in every 3 months) | None |
| [surge.sh](https://surge.sh/help/why-is-surge-free) | `surge <dir>` in terminal | Directory, no documented cap | Permanent, unlimited sites | Yes — npm CLI |
| dropthis | `dropthis <file>` or MCP | 5 MB file, folder via CLI | 7 days (free), permanent (Pro $19/mo) | CLI, SDK, MCP, REST |

### Path 1 — Netlify Drop (browser, no account, folder-aware)

Go to `drop.netlify.com` and drag your file or project folder onto the page. Netlify deploys everything inside the folder and returns a `.netlify.app` URL in seconds. No account is required to get a live preview link. Create a free Netlify account to claim the site and keep it permanently.

Netlify Drop accepts folders directly — drop a folder containing `index.html`, `style.css`, and `app.js` and all three files are served correctly. Netlify does not publish a per-file cap for the drop UI; for very large projects the Netlify CLI is the more reliable path.

**Best for:** multi-file AI output, browser workflow, permanence without paying.

### Path 2 — tiiny.host (browser, extreme simplicity)

Go to tiiny.host, enter a subdomain, and drag your file or ZIP onto the page. The free tier caps a single file at 3 MB and a ZIP at 10 MB, and limits you to one live site. Links are permanent — but the site goes offline if you don't log in at least once every three months. For tools with higher limits, see [tiiny.host alternatives](/blog/tiiny-host-alternatives/).

**Best for:** single-page output under 3 MB, non-technical recipients, shareable in seconds.

### Path 3 — surge.sh (terminal, unlimited)

surge.sh is the terminal path with the fewest constraints. Install once with `npm i -g surge`, then run `surge` in the directory containing your HTML. surge prompts for an email on first use and outputs a `.surge.sh` URL. No browser required, no account dashboard. Unlimited free sites and custom domains.

```bash
npm i -g surge
cd my-ai-project
surge
```

To update: run `surge` again in the same directory and enter the same domain at the prompt. The URL stays the same.

**Best for:** developers, repeated deploys, unlimited scale at $0.

### Path 4 — dropthis (terminal or AI tool, update-in-place)

dropthis publishes from a terminal with `dropthis <file>` and returns a permanent URL and a drop id. It also runs as an MCP server inside Claude Code, Cursor, and other MCP-enabled tools — so your AI assistant can publish directly without you switching windows.

```bash
dropthis index.html
```

Free drops expire after 7 days and carry up to 5 MB. Pro ($19/mo) makes drops permanent, raises the limit to 100 MB, and adds password protection. The update path keeps the URL stable: `dropthis update-content <id> index.html`.

**Best for:** programmatic publishing from an AI tool, content that needs a stable URL through multiple revisions.

### Path 5 — GitHub Pages / Vercel / Cloudflare Pages

These platforms are free and permanent, but they require a git repository and a build pipeline. For a single AI-generated HTML file, the setup cost is real — multiple steps before you have a URL. They are the right answer for projects that need CI/CD, not for one-shot shares. Cite specific limits from their official pricing pages if you compare them directly.

## What about multi-file projects — does it still work?

Many AI tools produce a single self-contained HTML file, with CSS and JavaScript inlined. That file drops onto any host directly. The complexity starts when an AI builder (v0, Bolt, Lovable) exports a folder of separate files.

The rule is: look for a host that accepts a folder or ZIP, and make sure `index.html` is at the root.

- **Netlify Drop** accepts folders natively. Drag the entire project folder and it deploys everything inside.
- **tiiny.host** accepts ZIP files up to 10 MB. Compress the folder, upload the ZIP.
- **surge.sh** deploys a directory. Run `surge` from the project root and it uploads every file.
- **dropthis** accepts a directory path on the CLI. Point it at the folder rather than a single file.

Claude Publish and ChatGPT Canvas share are single-artifact tools — they are not designed for multi-file projects. If an AI builder exports separate CSS and JS files, use one of the folder-aware hosts above.

## How long does a free link last, and when should you pay?

Free link lifetime varies more than most roundups admit. The table above lists what our research confirmed; here is the pattern to watch for:

- **Time-based expiry** (dropthis free: 7 days) — appropriate for prototype reviews and one-off demos. The link dies after the window regardless of traffic.
- **Activity-based expiry** (tiiny.host: offline if no login for 3 months) — appropriate for projects you are actively working on, but unreliable for links you share and forget.
- **Account-gated permanence** (Netlify: permanent once you claim the site with a free account, limited if you never sign in) — the most common pattern among full-featured platforms.
- **Unconditional permanence** (surge.sh free, Claude Publish) — the link lasts as long as the service exists.

Pay when you need: a custom domain, password protection, a link that survives the vendor's free tier terms, or programmatic updating from an agent. The [instant-hosting pillar](/blog/pillars/instant-hosting/) covers those cases in detail.

For the agent-publishing angle — when the AI tool itself calls a publish API rather than a human doing it — see [how AI agents publish to the web](/blog/how-ai-agents-publish-to-the-web/) for the patterns that keep URLs stable across multiple drafts.

## Frequently asked questions

### Can I publish an HTML file Claude made without using Git or a server?

Yes. Claude's Publish button gives a public link on claude.ai. For a URL on your own host, drag the file to Netlify Drop or tiiny.host in a browser — no account, no git, no build step. You get a shareable URL in under a minute.

### Does ChatGPT Canvas let me publish to my own URL, or only to chatgpt.com?

Canvas sharing produces a URL on OpenAI's domain — chatgpt.com/canvas/shared/… — not on a domain you control. Viewers see a rendered version of the canvas content. To get a URL on your own host, download the HTML from Canvas and upload it to a static host.

### What's the fastest way to turn an AI-generated HTML file into a live link?

Drag the file to drop.netlify.com. No account required. Netlify returns a netlify.app URL in seconds. The deploy is free and permanent once you claim it with a Netlify account. For a terminal path, run 'npm i -g surge && surge index.html' — similar speed, no browser at all.

### Do free instant HTML hosts expire, and what happens to the link?

Policies vary. dropthis free drops expire after 7 days. tiiny.host free sites are permanent but require a login at least once every three months. Netlify Drop previews without an account may expire; claiming the site with a free account makes it permanent. Check the host's policy before sharing a link you expect to last.

### How do I publish a multi-file project (HTML + CSS + JS) from an AI tool?

Put all the files in a folder with index.html at the root, then drop the whole folder onto Netlify Drop (accepts folders directly) or zip it and upload to tiiny.host (10 MB zip cap on free). The CLI paths — surge and dropthis — also accept a directory: point the command at the folder instead of a single file.

## Sources

- [Publishing and sharing artifacts](https://support.claude.com/en/articles/9547008-publishing-and-sharing-artifacts) — Anthropic
- [What is the canvas feature in ChatGPT and how do I use it?](https://help.openai.com/en/articles/9930697-what-is-the-canvas-feature-in-chatgpt-and-how-do-i-use-it) — OpenAI
- [Netlify Drop quickstart](https://docs.netlify.com/start/get-started-with-drop/) — Netlify
- [tiiny.host pricing plans](https://helpdesk.tiiny.host/en/article/pricing-plans-1i3vkky/) — tiiny.host
- [Why is surge free?](https://surge.sh/help/why-is-surge-free) — surge.sh