uploadthefile.com

Publish a Claude artifact as a live link

Published Last updated (unchanged since publication)uploadthefile.com

Copy the artifact’s HTML out of Claude, save it as a file ending in .html, and drop it on uploadthefile.com. You get a public URL in seconds with no account. Anonymous links last 48 hours, a free account extends them to 30 days, and paid links never expire.

Start by asking Claude for the artifact as a file rather than copying what you see rendered. A request like "give me this artifact as a single self-contained HTML file with all CSS and JavaScript inline" makes Claude resolve its own imports and produce something a browser can open unaided. That is the step people skip, and it is the one that decides whether the rest works.

Save the result as index.html in a plain-text editor, then drop it on the publish page. You get a public URL straight away: no account, no command line, no build. The HTML to link page covers the same route if you would rather paste markup than manage a file. Once uploaded, the page is an ordinary static file and no longer depends on the conversation it came from.

Why not just share the artifact from Claude?

Sharing inside Claude works well when your audience also uses Claude, and it stays tied to that context. Publishing the HTML yourself solves a different problem: giving someone a plain URL that opens in any browser, on any device, with no login and no product knowledge.

That matters for the ordinary cases: sending a prototype to a client, dropping a link in a ticket, putting a working demo in a job application, or checking that a layout survives contact with a real phone. A public URL is also something you can hand to people who will never know or care that a model wrote the page. The two approaches are not in competition; they answer different questions, and the file-based one is what you want when the recipient should not have to think about tooling at all.

Will a React artifact work as a static file?

Sometimes, and the distinction is precise. What matters is not whether the artifact uses React, but whether it needs a build step to become runnable.

A component that renders with a CDN copy of React and transpiles in the browser is already static. Wrap it in an HTML file with the script tags Claude specifies, and it works. A component that imports from node_modules, relies on a bundler, or expects a server to render it does not, and no amount of static hosting will change that.

The honest test is simple: if you can open the file directly from your own disk and it renders, it will render once uploaded. If opening it locally produces a blank page and console errors about imports, it needs a real build, and Vercel is the correct destination for that, not this one.

What are the limits worth knowing about?

Static hosting serves your files exactly as uploaded. There is no npm install, no bundler, no server-side runtime, and no environment where secrets can live out of sight.

The practical consequences are worth spelling out, because artifacts often brush against them.

Artifact does thisWorks as a static file?Why
Renders entirely in the browserYesNothing needs to run on a server
Loads React or a chart library from a CDNYesThe CDN serves the dependency
Fetches a public, CORS-open APIYesThe browser makes the call
Calls an API needing a secret keyNoA static file cannot hide a key
Imports from node_modulesNoRequires a bundler and a build
Uses a database or server routeNoRequires a running server

The last three rows are not limitations you can work around with a different upload. They describe applications, and applications need somewhere that runs code.

The API-key row deserves emphasis because artifacts run into it constantly. A static page has no server, so there is no private place to keep a secret: whatever you write into the file is visible to anyone who views the page source. If your artifact needs an authenticated API, it needs a backend, and that is a different kind of deployment entirely.

How do I publish an artifact with several files?

Some artifacts arrive as a set: an index.html, a stylesheet, a script, maybe images or a data file. Keep them in one folder with index.html at the root, ZIP the folder, and upload the ZIP. It is unpacked and served as a small static site, so every relative path between your files resolves the way it did locally.

This is the better option even for two files, because flattening a multi-file artifact into one inline document introduces mistakes that are tedious to find later. If the artifact grew into something closer to a small generated site, the host an AI-generated website page covers that shape specifically. Either way the result is the same: one public URL, no account required to open it, and a page that behaves identically for everyone you send it to.

An anonymous upload gives you a live URL for 48 hours. That suits the majority of artifact-sharing: showing a colleague a prototype, getting feedback on a layout, or confirming that something renders correctly away from your own screen.

Signing in with a free account extends the same link to 30 days, which fits work you will refer back to over a sprint rather than an afternoon. Paid plans keep links up permanently, for the artifacts that stopped being throwaway and became a tool someone uses.

Viewing never requires an account at any tier: the person you send the link to just opens it, on any device, with no prompt to sign up for anything. What you gain by signing in is time on the clock and a dashboard listing everything you have published, which becomes useful the moment you have shared three revisions of the same prototype and need to know which URL is the current one.

Frequently asked questions

Can I share a Claude artifact without an account on the host?
Yes. Save the artifact as an .html file and upload it; no signup is needed to get a public URL. An anonymous link stays live for 48 hours, a free account extends it to 30 days, and paid plans keep links up permanently.
My artifact is a React component. Will it work as a static file?
Only if it runs entirely in the browser. A component that renders with a CDN copy of React and no build step works fine once wrapped in an HTML file. A component that imports from node_modules, uses a bundler, or expects a server will not: it needs a real build, so deploy it to Vercel instead.
How do I get the raw HTML out of an artifact?
Ask Claude for it directly: request the complete artifact as a single self-contained HTML file with all CSS and JavaScript inline. That is more reliable than copying rendered output, because it makes Claude resolve its own imports and inline styles into something a browser can open on its own.
Does the published page keep working after the chat is gone?
Yes. Once the HTML is uploaded it is an ordinary static file served from a public URL, with no dependency on the conversation it came from. Deleting the chat or losing access to the artifact has no effect on the live link.
Can I publish an artifact that fetches data from an API?
It works if the fetch happens in the browser and the API allows cross-origin requests from any origin. It does not work if the call needs a secret key, because a static file has no server to hide one in, and anything you embed is readable by every visitor.