Skip to content

Publish a Claude artifact

Built something in Claude as an artifact? You can publish it to Volly as-is: download the artifact as a single .html or .jsx/.tsx file and drag it into the dashboard — or connect the MCP integration and just ask Claude to publish it for you.

Most artifacts run on Volly without any changes:

  • React components (.jsx/.tsx) deploy as-is — no build step. Volly wraps the file in a page that renders it in the browser.
  • npm packages like recharts, lucide-react, or d3 load automatically from a CDN when the page opens.
  • Tailwind classes work.
  • Saving data in the browser with localStorage works.

A few things only exist inside Claude’s artifact preview, and stop working on any normal website — including Volly:

  • Asking Claude for answers from inside the app (window.claude). On claude.ai the artifact can talk to Claude; a published app can’t.
  • Claude’s built-in storage (window.storage). Data saved this way lives in claude.ai, not in your app.
  • Calling Anthropic’s API from the page. In the artifact preview these requests ride on your Claude session; on a real website they fail — and putting an API key into the page would expose it to everyone.

There’s one more single-file limitation: the file can’t import other local files (./utils or @/components/...). If your project has multiple files, build it and upload the output as a .zip instead — see Publish an app.

When you upload a file that uses any of these Claude-only features, the upload step shows a warning explaining what won’t work. You can still publish — the app may simply have dead features until it’s fixed.

Each warning includes a ready-made “Prompt to fix it”. Copy it, paste it back into your Claude conversation, and Claude rewrites the app to work as a normal website — for example swapping window.claude calls for built-in data and moving storage to the browser. Then publish the new version.