Claude Artifact & JSX Viewer

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.

Share this page as a 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

Why a Claude artifact won’t open on its own

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.

How to run a Claude artifact

1

Copy the artifact's code

In Claude, open the artifact and switch to its code view. Copy all of it — the component and its imports.

2

Paste it and watch it run

The viewer compiles the JSX in your browser and loads React, Tailwind, icons and charts. Edit it and it re-runs.

3

Download it, or share it

Download .html saves one file that runs anywhere. Or get a private link and send the working page.

What can’t run outside Claude

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.

Claude artifact viewer questions

How do I run a Claude artifact outside Claude?

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.

Which libraries and components work?

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.

Why won't my artifact run here?

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.

Is my code uploaded anywhere?

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.

How do I turn a Claude artifact into a single HTML file?

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.

How do I share an artifact without making it public?

Claude's own Publish button only makes public links, and Team and Enterprise plans cannot publish publicly at all, so the private route is to host the artifact somewhere that checks who is opening it. Get a permanent link, under the viewer, takes the working HTML file this viewer builds straight into pagegoat's upload, where you can put it behind a password, limit it to people you name by email, or ask each visitor to confirm their email first — checked on the server before the page is sent. Your readers need no Claude account, and they can comment on the exact part of the page they mean. Hosting starts at $2.99 a month; if public is fine, Claude's own Publish button is free.