How to publish AI-generated HTML
You asked an AI for a report, a dashboard or a proposal and got a complete .html file. Publishing that file means giving it an address on the internet, so someone else can open it in a browser without downloading anything. This guide covers the ways to do that and how to choose between them.
What publishing an HTML file actually means
Publishing gives the file a public address. There are two categories of tool, and confusing them is the source of nearly every frustration on this topic.
Hosting makes the file reachable at a URL. Almost everyone does this, many for free.
Sharing is deciding who sees it, knowing who saw it, and staying in control after the link is forwarded. Far fewer tools do that.
If you just need an address for a throwaway file, any host will do. If the file is a commercial proposal, a client report or a document with a deadline, the second category is what matters.
What the options are, and when each one wins
| Option | Best for | Practical limit |
|---|---|---|
| The AI's own Publish button | Showing something fast, no strings | Public link, no password, no expiry, no stats |
| GitHub Pages | People already using Git daily | Needs a repo, a commit and technical knowledge |
| Netlify Drop | A throwaway link in seconds | No access control and no audience data |
| Cloudflare Pages / Vercel | A project that will become a product | Build step and a developer account |
| Google Drive, SharePoint, OneDrive | Nothing, in this case | They do not serve HTML as a browsable page |
| A sharing platform | Documents that need control and answers | Free plan limited in number of files |
Choose GitHub Pages if you are a developer, the file is public and you already live in Git: it is free and has no file limit.
Choose Netlify Drop if all you want is a temporary address to show something now and never again.
Choose a sharing platform like I LOVE HTML when the document has a recipient and a consequence: when it matters whether they opened it, when the link needs a password or an expiry date, or when you will update the content without changing the address you already sent.
How to publish in three steps
- Have the file ready. If the AI returned the code in the conversation, save it as
.htmlor paste it straight into the platform. If the page uses its own images and fonts, put everything in a.zip. - Upload it. Drag the file, paste the code, or point at the data source. The step by step is in how to upload a file.
- Set the access and share. Decide whether it is public, private or password-protected, set an expiry if it makes sense, and copy the link.
The detailed walkthrough, including what Claude's Publish button does and does not cover, is in how to share a Claude artifact privately.
Why the page breaks after publishing
Three causes explain most cases:
- CSS or fonts outside the file. If the HTML points at a local file that was not uploaded, the layout breaks. Fix: CSS embedded in the file itself, or a
.zippackage with everything inside. - The tool does not serve HTML. Google Drive, SharePoint and OneDrive store the file but do not deliver it as a browsable page.
- JavaScript blocked by the host. Some services filter scripts, and the dashboard arrives without its charts.
A platform that serves HTML in an isolated context can accept JavaScript without filtering, because the page has no access to anyone's session.
What to do after publishing
Publishing is the beginning. What usually comes next:
- Organizing, once you pass a dozen files: pick one criterion (client, project or type) and stick to it, and name files with the date first so they sort themselves.
- Printing, when the link goes on a poster or a menu. See the dynamic QR code guide.
- Updating without changing the address, so nobody has to receive the link again.
What it costs
Publishing an HTML file can cost nothing. GitHub Pages, Netlify Drop and the publish buttons built into AI tools are free, and for many purposes that is enough. The eight free options are compared in where to host a single HTML file for free.
Documents can also be built from a live data source instead of copied numbers, which we announced in documents with data from an API, Google Sheets or JSON.
The cost shows up when you need control: password, expiry, custom domain, knowing who opened it. On I LOVE HTML the free plan covers up to 5 files and the paid plan starts at $3 per month, with up to 100 files. Each plan's limits are in Plans and limits.
When to use none of this: if the file is only for you, opening it locally in your browser is enough. Publishing makes sense when there is another person on the other side.