The shortest path to deploying a Claude artifact as a real website is to open the artifact’s code view, copy the source, paste it into the Pasted source tab at InstaPods Import, and click Deploy. You get a live URL on your own subdomain with SSL, no GitHub setup, no build step, no DevOps.
It used to be one step shorter. Until mid-2026 you could paste the claude.ai URL itself and we would fetch the source for you. Claude moved artifact pages to client-side rendering, which closed every server-side route to the source, so that tab no longer works for Claude links. The copy-paste costs you one extra step and nothing else. The detail is in what is a claude.ai/public/artifacts URL.
If you want to stay on Claude’s own claude.ai/public/artifacts/<id> URL, you can; we explain why that breaks for production use below. If you want to copy the source by hand and deploy through your usual flow, that works too. This guide covers all three paths, with the tradeoffs of each.
We built the InstaPods Import flow because we ship Claude artifacts ourselves and got tired of the Anthropic branding bar showing up at the top of pages we wanted on our own domain.
Quick answer
Three options, ranked by ease:
- InstaPods Import (recommended): copy the artifact source from its code view, paste it into the Pasted source tab at
app.instapods.com/dashboard/import, click Deploy. Live URL on your own subdomain. Starts at $3/mo - $10 credit when you add a card. - Claude’s built-in Publish: click Publish in the artifact panel. Get a
claude.ai/public/artifacts/<uuid>URL with Anthropic’s branding bar. Free, but the URL is on claude.ai and Anthropic controls it. See what a claude.ai/public/artifacts URL is for what that link can and can’t do. - Copy source + deploy manually: open the artifact’s code view, copy the HTML or JSX, paste into a fresh project, push to Vercel/Netlify/your VPS. Most work, most control.
Note, August 2026: the Import page’s URL tab, which fetched an artifact straight from its
claude.ailink, no longer works for Claude artifacts. Claude moved artifact pages to client-side rendering, so the source is not in the page’s HTML and the internal endpoint the page uses is both robots-disallowed and bot-gated. There is no server-side route to the content left, so this is not something we can fix at our end, and we are not going to promise a date for something that is Anthropic’s call. Use the Pasted source tab as described above, which works normally. The URL tab still works for ChatGPT canvas links. Steps below that mention pasting a URL refer to the URL tab.
Why “Publish” inside Claude isn’t enough
Claude’s Publish button works. The result is a real, public URL that loads fast and works without an account. For sharing a quick prototype with one colleague, it’s perfect.
The limits show up as soon as you want the artifact to be more than a prototype:
- The URL is on claude.ai, not your domain. Anyone visiting sees
claude.ai/public/artifacts/...and a “Created with Claude” header bar at the top of the page. You cannot change either. - You cannot customize the OG image, favicon, or meta tags. This matters if you want the link to look professional when shared on social, in email, or in Slack previews.
- Anthropic can deprecate, redesign, or rate-limit the page. It’s their infrastructure. The URL format has already shifted once.
- There are no analytics. No visitor count, no referrer data, nothing.
- Live Artifacts with MCP connections don’t share well. If your artifact pulls data from Notion or Sheets via MCP, those connections are yours; anyone else visiting sees placeholders.
For internal demos and quick share-arounds, Publish is fine. For anything you want indexed by Google, embedded in a product, or branded as yours, you need a different deploy.
The three paths in detail
| Method | Time | Custom domain? | Removes Claude branding? | Cost |
|---|---|---|---|---|
| Claude Publish | ~5 seconds | No | No (header bar stays) | Free |
| InstaPods Import | ~1 minute | Yes | Yes | $3/mo |
| Copy source + Vercel/Netlify | ~10-15 minutes | Yes | Yes | $0-20/mo |
| Copy source + raw VPS | ~2-4 hours first time | Yes | Yes | $4-5/mo |
The InstaPods Import path is the only one that gets you your-domain hosting with SSL without standing up a project, a build step and a deploy pipeline first. The rest of this guide walks through it.
Step-by-step: deploy a Claude artifact
The full workflow.
Step 1: Open the artifact’s code view
In Claude, open the artifact panel and switch to the code view. That is all you need.
One upside of the paste flow: you do not have to publish the artifact at all. The old URL flow required a published artifact, because we had to fetch it over the public web. Copying the source works on a private artifact, so you can skip Publish entirely and never create a claude.ai link you would later have to unpublish. That matters more than it sounds, because unpublishing is one-way.
Step 2: Sign up or log into InstaPods
Go to app.instapods.com and sign up. Add a card to get a $10 credit, which covers your first bill on an import pod.
Step 3: Open the Import page
Click Import in the sidebar, or go directly to /dashboard/import.
Step 4: Paste the source and deploy
Select the Pasted source tab. Back in Claude, open your artifact, switch to its code view, and copy the whole thing. Paste it into the source box, give it a title, and pick the type if it is not detected.
Click Deploy.
That’s the entire flow. InstaPods:
- Picks the right preset (static for HTML/SVG/Mermaid, static with a React wrapper for JSX).
- Creates a real Linux pod with HTTPS auto-issued.
- Pushes the artifact files to the pod.
- Returns the live URL.
You’re redirected to the pod’s dashboard page; the live URL is clickable at the top of it.
The URL tab next to it does still fetch automatically, but only for sources that expose their source server-side. A chatgpt.com/canvas/shared/<id> link works there. A claude.ai link does not, for the reason above, and the page will tell you so and offer to switch you to the paste tab.
Step 5: Visit the live site
The URL is https://<your-pod-name>.<region>.instapods.app. No Anthropic header bar. No branding that isn’t yours. Just your artifact, on your subdomain, with HTTPS.
Adding your own custom domain
The default subdomain is fine for sharing. For something you want indexed, branded, or linked from elsewhere, point a custom domain at the pod.
- Buy a domain (Namecheap, Porkbun, Cloudflare, wherever).
- In your pod’s dashboard, go to the Domains tab. Add your domain.
- Set the CNAME record at your registrar to point at the value InstaPods shows.
- Wait 1-5 minutes for DNS propagation; SSL auto-issues.
Now your Claude artifact is live at yourbrand.com, with no trace of claude.ai in the URL or the page.
Multiple domains per pod work fine if you want, say, both myapp.com and myapp.app to serve the same artifact.
Environment variables and dynamic data
Claude artifacts are usually self-contained: a single HTML file or a React component with no backend dependencies. If yours is too, skip this section.
If your artifact makes external API calls (to OpenAI, to your own backend, to a public API), you’ll want to set environment variables instead of hardcoding keys in the source. After the import:
- Go to the pod’s Env tab in the dashboard.
- Set the keys:
OPENAI_API_KEY, your auth tokens, whatever the artifact needs. - Click Reload.
For artifacts that call out to your own backend, point the API URL at a real domain (not localhost). The deployed artifact runs on a real Linux server; localhost won’t resolve to your machine.
Live Artifacts with MCP connections
Claude’s Live Artifacts feature lets an artifact pull data from Notion, Slack, Google Sheets, or Gmail via MCP connectors. These don’t transfer when you deploy.
The MCP connection is between your Claude account and the third-party service. The deployed copy doesn’t have that connection, and recreating it would require credentials you probably don’t want to hardcode into a public website.
What works:
- Public APIs (weather, stocks, public datasets): hit them directly from the deployed artifact; no credentials needed.
- Your own backend with auth: deploy your backend separately, point the artifact at it.
- Static snapshots of the data: have Claude generate the artifact with the data baked in, then deploy that snapshot.
What doesn’t work:
- Live MCP-connected data on a deployed artifact (Notion, Slack, etc.). You’d need to rebuild the integration in a way that doesn’t rely on Claude’s account-scoped MCP connection.
When the import hits a wall
Things that occasionally go sideways and how to fix them.
The URL tab refuses a claude.ai link
Expected, as of 2026. Claude artifacts have to go through the Pasted source tab now; copy the source from the artifact’s code view. The URL tab still fetches chatgpt.com/canvas/shared/<id> links automatically.
”no importer matches URL”
The URL is not one we fetch. The URL tab handles chatgpt.com/canvas/shared/<id>. Anything else, including a claude.ai artifact and hand-written source, goes through the Pasted source tab.
The deployed site looks broken
Two likely causes:
- The artifact uses external assets that point at claude.ai. Claude sometimes generates code that references its own CDN. Open the pod’s files via the dashboard’s Web IDE, find the broken URL, replace with a CDN you control (or inline the asset).
- The artifact relies on the Claude runtime. A small number of React artifacts use Claude-specific browser APIs. These don’t work outside of claude.ai. We log a warning in the import event if we detect this; check the pod’s events tab.
”pod name already exists”
Happens when you re-import the same artifact title. We auto-suffix with -2, -3, etc., or you can specify a different name in the Import form. The auto-suffix path is the default if you leave the Pod Name field blank.
The CLI path (for the terminal-comfortable)
You can run the import from the command line instead of the dashboard. If you have the InstaPods CLI installed:
curl -fsSL https://instapods.com/install.sh | sh
instapods login
# Claude artifact: pipe the source you copied from the code view
pbpaste | instapods import --paste --title "My artifact"
# ChatGPT canvas: the URL still works
instapods import https://chatgpt.com/canvas/shared/<id>
Use --from-file artifact.html instead of piping if you saved the source to a file.
Output:
✓ Detected Claude artifact (text/html)
✓ Title: "Your artifact title"
✓ Creating pod
✓ Uploading files (45 KB)
✓ Imported 1 file from claude
→ https://your-artifact-title.nbg1-1.instapods.app
Useful for: scripting (deploy several artifacts at once), CI workflows, or anyone who lives in the terminal. Add --dry-run to preview without creating a pod.
Cost
The InstaPods Launch plan is $3/mo flat, with a $10 credit when you add a card. Most Claude artifacts fit comfortably on Launch (1 vCPU, 512MB RAM, 10GB disk, sub-second response time on the static preset).
If your artifact is a React component with heavy dependencies or you’re hosting many artifacts on one pod, the Build plan at $7/mo gives you more headroom. The pricing is flat per pod per month; no bandwidth charges, no per-request billing.
Comparison vs alternatives:
- Vercel Hobby: free for personal use, but breaks if your artifact has any server-side logic.
- Netlify Free: similar to Vercel, static-only constraints.
- Cloudflare Pages: free, but you’ll spend time configuring build settings the first time, and serverless workers cost extra if you need them.
- Raw VPS: $4-5/mo, but 2-4 hours of setup time and ongoing maintenance.
For one-paste Claude artifact deploys with HTTPS and a real domain, InstaPods is the only option that’s actually one paste.
FAQ
How do I share a Claude artifact publicly?
The easiest way is to click the Publish button in the artifact panel inside Claude. You get a URL of the form claude.ai/public/artifacts/<uuid> that anyone can visit without a Claude account. The page has Anthropic’s branding bar at the top. For more control over the URL and branding, deploy the artifact through InstaPods Import and get a URL on your own subdomain or domain.
Can I deploy a Claude artifact to my own domain?
Yes. The Claude Publish button only gives you a claude.ai/public/artifacts/<id> URL on Anthropic’s domain. To use your own domain, deploy the artifact through a third-party host. InstaPods Import does this in one paste: it fetches the artifact source, creates a pod, and assigns a subdomain you can point a custom CNAME at.
Is it free to deploy a Claude artifact?
The InstaPods Launch plan is $3/mo, and adding a card gets you a $10 credit that covers your first bill. Free static hosting elsewhere (Cloudflare Pages, Vercel Hobby) is possible if you copy the source out of Claude by hand and configure the build pipeline yourself.
Will my artifact still work after I deploy it?
Yes, for the common cases. Plain HTML, SVG, Mermaid diagrams, and React components without claude.ai-specific browser APIs all work fine on the deployed copy. The two cases that don’t transfer: artifacts that use Live Artifact MCP connectors (the MCP connection is account-scoped), and artifacts that reference assets hosted on claude.ai (those URLs need to be replaced).
Can I edit a deployed Claude artifact?
Yes. After the import, the pod has the artifact source as files you can edit via the InstaPods Web IDE, via SSH, or by syncing changes locally. If you want to keep using Claude as the editor, you can re-import the updated artifact to a new pod (auto-suffixed) or replace the files in the existing pod.
What about ChatGPT canvas? Same flow?
Yes. The InstaPods Import flow handles both Claude artifacts and ChatGPT canvases. Paste the canvas URL (chatgpt.com/canvas/shared/<id>) instead of a Claude artifact URL; the same Deploy button works. See the Claude artifacts vs ChatGPT canvas comparison if you’re picking between them.
How big can a Claude artifact be?
The Launch plan’s 10GB disk handles essentially any artifact (most are well under 100 KB). The constraint is more about runtime: artifacts with heavy dependencies (React + Tailwind + Recharts) work fine but might want the Build plan’s 1GB RAM during initial load.
Can I use the import flow programmatically?
Yes. The InstaPods CLI exposes instapods import <url> and the same flow is available via the public API at POST /api/imports. Useful for automating deploys from a CI workflow or a personal script that fetches several artifacts at once.
Next steps
If you have a published Claude artifact and want to test the deploy:
- Open your artifact in Claude and copy the source from its code view.
- Go to app.instapods.com/dashboard/import and pick the Pasted source tab.
- Paste, click Deploy. Live URL on your own subdomain, with SSL.
If you want to read more first:
- What are Claude artifacts? The complete guide covers the full feature reference.
- Claude artifacts vs ChatGPT canvas compares the two side-by-side, including the deploy story for both.
- Can you get a public URL for a Claude artifact? covers what Publish actually gives you, in case it is enough for your use case.