Paste a Claude artifact’s React code and run it right here — JSX or TSX, with Tailwind, lucide icons, recharts and shadcn/ui components. Then download it as a single HTML file that opens anywhere. Free, no sign-up, and your code stays in your browser.
Drop a .jsx or .tsx file here, choose one, or paste code into the editor.
It renders right here in your browser. Nothing is uploaded unless you choose Get a free link.
A free link lasts 4 hours and needs no account. Anyone with the link sees the page exactly as your preview shows it.
Nothing to share yet
Open a file or paste something above
Your link: untitled--••••••.pagegoat.site
Six random characters are added, so nobody can guess or take your address.
Open or paste something first · lasts 4 hours
A React artifact isn’t a web page yet. It is a component written in JSX, which no browser runs directly, importing libraries — and shadcn/ui components from @/components/ui — that Claude supplies while it shows it to you. Save the code and open it anywhere else and there is nothing to compile it and nothing to import. That is why a downloaded .jsx shows as text, and why most “JSX to HTML” converters only rename a few attributes and hand back something that still doesn’t run.
This viewer supplies the missing parts. It compiles the code with sucrase, loads React, lucide-react and recharts from esm.sh, styles it with Tailwind, and stands in for the shadcn/ui components with light versions that take the same props. The result is an ordinary HTML page.
In Claude, open the artifact and switch to its code view. Copy all of it — the component and its imports.
The viewer compiles the JSX in your browser and loads React, Tailwind, icons and charts. Edit it and it re-runs.
Download .html saves one file that runs anywhere. Or get a private link and send the working page.
Anything that calls Claude itself. An artifact that uses window.claude.complete to ask Claude a question, reads a file you uploaded to the chat with window.fs, or saves data with Claude’s persistent storage depends on a runtime that only exists inside Claude. The viewer tells you which of those it found rather than failing silently. For everything else — dashboards, calculators, reports, games, prototypes — the downloaded file is the artifact, working.
Sharing it is the next step. Claude’s own Publish button makes a public link, and that is the right answer when public is fine. When it isn’t — a client’s numbers, an unannounced prototype, a Team plan with no Publish button — the Claude artifact hosting guide covers the private options. The box under the viewer makes a free link for the working page, or takes it into pagegoat’s upload for one that lasts.
Copy the artifact's code — in Claude, open the artifact and switch to the code view — then paste it into the viewer above. It compiles the JSX in your browser, loads React and the libraries the artifact imports, and runs it, so you see the same component working outside the chat. From there, Download .html saves a single file that runs it anywhere with an internet connection: open it in any browser, attach it, or host it. The file carries your code and loads React, Tailwind and the other libraries from public CDNs when it opens, which is what keeps it to one file rather than a folder of build output you would have to set up.
The ones Claude's artifacts use most. React and its hooks, Tailwind's utility classes, lucide-react icons and recharts charts load directly. The shadcn/ui components artifacts import from @/components/ui — Card, Button, Input, Tabs, Select, Slider, Switch, Alert, Badge, Dialog, Accordion, Table and a few more — are replaced with lightweight stand-ins that take the same props and look close to the originals, so the layout and behaviour hold even where the styling differs slightly. Any other npm package the artifact imports, such as lodash, d3 or mathjs, is fetched from esm.sh automatically. What cannot load is a file the artifact imports by a relative path, because that file only exists in Claude.
Usually because it relies on something only Claude provides. Artifacts that call Claude itself through window.claude.complete, read a file you uploaded to the chat through window.fs, or save data with Claude's persistent storage all stop at that call, because none of those exist outside Claude's own runtime — the viewer says which one it found rather than failing silently. The next most common cause is a missing export default: the component the viewer runs is the one the code exports as its default. If the code does not compile, the error box shows the line the compiler stopped at. And if nothing loads at all, check your connection, since React and the libraries come from a CDN.
No. The code you paste is compiled and run inside your own browser, in a sandboxed frame that cannot reach this site's cookies or storage, and it is not sent to pagegoat or stored after you close the tab. The page does make requests to public CDNs — esm.sh for React and the libraries, and Tailwind's CDN for styling — because that is where the libraries come from, and those requests fetch the libraries, not your code. The only way your artifact leaves your browser is if you choose Get a free link, which puts the finished HTML file online as a short-lived public link, or the paid upload, which puts it in your account after you sign in, or if you download it and send the file yourself.
Paste it above and press Download .html. The file you get holds your artifact's code, compiles it when it opens, and loads React, Tailwind and the other libraries from public CDNs, so it runs by double-clicking it on any computer with an internet connection, with no npm, no build step and no project to set up. That is the same file the preview shows, so what you checked here is what you send. It is also exactly the shape an HTML host expects: drop it on any static host, use Get a free link for a short-lived public link, or take it into the paid upload to put it online privately. The one requirement it keeps is a connection, since the libraries are fetched when it loads rather than bundled into it.
Open or paste an HTML file and see it render, at phone, tablet or desktop width.
Open an .md file or paste Markdown and read it as a page, then save it as a PDF or HTML.
Someone sent you a .html file and your phone shows code. Open it here instead.
Write HTML and watch it render as you type, starting from a blank page or a template.
When a page is ready for other people: host an HTML file free and get a link, or browse all the tools.