AI tools are great at building pages. The annoying part is sharing them. The page is often locked inside the tool, and the link you get asks the other person to log in or only shows them a copy inside that same app. Here is how to get the HTML out of Claude, ChatGPT, v0, Lovable, and Bolt, and turn it into a clean public link anyone can open.
The login-wall problem
When you share straight from an AI tool, the link usually comes with strings attached:
- The other person may need an account in that tool before they can see anything.
- They might only get an editable copy inside the app, not a finished page on its own URL.
- The shared view can change or disappear when you tweak your project.
- Some "share" links expose your whole workspace or chat, not just the one page.
That is fine for a teammate inside the same tool. It is the wrong experience for a client, a recruiter, a friend, or a public post. The fix is the same in every case: export the page as HTML, then publish that HTML as a standalone link.
What works on a static link, and what does not
Snapy serves static content: HTML, CSS, JavaScript, images, and fonts. That covers the vast majority of what these tools generate, because their output is almost always a static front end.
- Works: layouts, styling, animations, client-side interactivity, anything that runs in the browser, calls to public APIs that do not need a secret key.
- Does not work: server-side rendering, a database, user logins handled on a server, secret API keys, or any backend the AI tool would normally run for you.
So the rule of thumb is simple. If the page is the front end, it will publish cleanly. If it depends on a live backend the tool was hosting, that part will not come along, because there is no server to run it.
Claude
Claude builds pages as Artifacts in the side panel.
- Open the Artifact and look for the code or download control in its top corner.
- If it offers a download, save the file as
.html. If it only shows code, copy all of it, paste it into a plain text file, and save it with a.htmlextension. - Make sure styles and scripts are inline or loaded from a CDN so the single file is self-contained.
- Publish it on the share a Claude or ChatGPT page tool and click Get my link.
ChatGPT
ChatGPT often returns a full HTML document in a code block, and Canvas can hold a longer page.
- Ask it for the complete page in one HTML file if it has split things up.
- Copy the full code block, or use the copy button on the canvas.
- Paste it into a new file and save it as
index.html. - Drop it into the share a Claude or ChatGPT page tool to get your link.
v0
v0 by Vercel generates React components and pages.
- In your v0 project, open the code view and export or copy the generated code.
- If v0 gives you a build or static export, use that. If it gives you React source, export the built static output (the contents of the build folder, which has an
index.html). - Zip the exported folder with
index.htmlat the root. - Upload the zip on the publish a v0 page tool. The whole static export serves on one link.
Note: a React app that depends on a server or environment secrets will only bring its static front end. Front-end-only v0 pages publish cleanly.
Lovable
Lovable builds full-looking apps, so check what is static before you publish.
- Open your Lovable project and find the export or download code option.
- Export the project, then locate the built static output (the folder containing
index.htmland the assets). - Zip that folder, keeping
index.htmlat the top level. - Publish it with the publish a Lovable site tool.
If your Lovable app uses a backend, logins, or a database, those parts run on Lovable's servers and will not work on a static link. The visual front end will.
Bolt.new
Bolt.new (StackBlitz) builds projects in an in-browser environment.
- In your Bolt project, run the build, or download the project files.
- Find the static output folder (often
distorbuild) that containsindex.html. - Zip that folder with
index.htmlat the root. - Upload the zip on the publish a Bolt.new page tool to get a public link.
As with the others, only the static output travels. Any server piece Bolt was running stays behind.
A clean name helps
Pick a link name that fits the project, like pricing-demo.snapy.page. It reads as more trustworthy when you send it to a client or post it publicly. You can also add a password if it is a private draft, set an expiry, turn on view analytics, or grab a QR code for a slide or flyer.
FAQ
Why not just use the tool's own share button? Because it often forces the viewer to log in, shows them an editable copy, or exposes more of your workspace than you want. A published HTML link is clean, public, and shows only the page.
My AI page had a working backend. Why is it broken now? A static link cannot run server code or a database. The front end publishes, but any backend the tool was hosting does not. Keep the dynamic parts in the tool, or move them to an app platform.
Do I need one file or a zip?
A self-contained single page can be one .html file. A multi-file export (common with v0, Lovable, and Bolt) should be zipped with index.html at the root.
Is there a login wall on the published link? No. Anyone with the link can open it, on any device, with nothing to install. You can optionally add your own password if you want to limit access.
Is it free? Yes, free with no signup, and up to 100MB per file.
Ready to share your AI page? Start with the share a Claude or ChatGPT page tool.
