How to Publish a Website You Made with Claude
Making a good-looking website with Claude now takes an evening. Getting it onto your domain, with a form that works and Google able to find it, is where most people get stuck. The tutorials end at the screenshot, and the Publish button looks like it solves the problem, until you notice the address.
This guide covers all three ways people make websites with Claude, what you actually have at the end of each, and the shortest route from there to a real site.
First: where did your site come from?
| Made with | What you have | Fastest way out |
|---|---|---|
| An artifact on claude.ai | One page of HTML, or a React component, inside the chat | Download the code, or ask Claude to turn it into one self-contained index.html |
| Claude Design | One or more designed pages in a project | Export as standalone HTML or as a ZIP, or hand it off to Claude Code |
| Claude Code | A folder of files on your computer, ideally a Git repository | Push to GitHub and connect a static host |
Why the Publish button isn't a website
Publishing an artifact makes it viewable by anyone with the link, no Claude account needed. Anthropic describes how it works in its help article on publishing and sharing artifacts. For a business site it falls short in four ways:
- No custom domain. The page lives on Claude's address, not yours. Your business card, your Google Business Profile and your email signature can't point at it in any lasting way.
- You don't own the page around it. You can't add your own page title, meta description, analytics or Search Console verification, because the outer page belongs to Claude.
- Rankings don't accrue to you. Even if a published artifact gets indexed, any authority it builds belongs to Claude's domain. When you later move to your own, you start from zero.
- No back end. A contact form inside an artifact has nowhere to send its messages.
Use it to show a client or a colleague a draft. Don't print it on anything.
Route 1: From an artifact
Open the artifact and download it, or copy the code. Then check what kind of artifact it is:
- An HTML artifact is already a web page. Save it as
index.html, open it in your browser, and if it looks right, it's ready to host. - A React artifact (code starting with
importandexport default) won't run on its own, because it needs a build step. The simplest fix is to ask Claude in the same chat: "Convert this into a single self-contained index.html with plain HTML, CSS and a little vanilla JavaScript. No React, no build step, no external CDN scripts."
One artifact is one page. If you want a site with several pages, ask for each page separately with the same header and footer, or move to Claude Code, where keeping pages consistent is much easier.
Route 2: From Claude Design
Claude Design can export a project as standalone HTML or as a ZIP of all its files, and it can hand the design off to Claude Code to be built out. For a website you want to host, the ZIP is usually the most useful: it contains every page plus the images and styles it needs.
Two things to check before you publish a design export:
- Does it work on a phone? Designs are often made on a desktop-sized canvas. Open each page in your browser, shrink the window to phone width and see what breaks. If it does, ask Claude to make the pages responsive before you host them.
- Where do the fonts come from? Exports often load fonts from Google Fonts. In the EU that sends visitor IP addresses to a third party before consent, and a German court has already ordered a site owner to pay damages for it. Self-host the fonts instead.
Route 3: From Claude Code
This is the easiest of the three, because you already have a real project. Push it to GitHub and connect
the repository to your host. For plain HTML there's no build command. For Astro it's
npm run build with the output folder dist. Every push publishes from then on. If you
haven't built the site yet, our
step-by-step guide to building a website with Claude Code
starts from an empty folder.
Where to host it
What Claude produces is a static website: plain files that any web host can serve. That makes hosting cheap, usually free, and very fast.
| Host | How you upload | Good to know |
|---|---|---|
| Cloudflare Pages | Drag and drop a folder, or connect Git | Generous free tier; drag and drop is limited to 1,000 files and 25 MiB per file |
| Netlify | Drag and drop (Netlify Drop), or connect Git | Has built-in form handling (Netlify Forms), useful for a simple contact form |
| GitHub Pages | Push to a repository | Free for public repositories; we wrote a full GitHub Pages guide |
| Your existing web host | Upload by FTP or file manager | Works, but every change means uploading files again by hand |
The Cloudflare Pages direct upload docs are a good reference for the drag-and-drop route, which needs no Git at all.
Connecting your domain
- In your host's settings, add the custom domain (both
example.comandwww.example.com). - The host shows you which DNS records to set. Usually a CNAME for
www, and for the bare domain either a CNAME-style record or A records, depending on your registrar. - Set those records where you bought the domain. Leave your MX records alone, or your email stops working.
- Wait for SSL. The certificate is issued automatically, usually within minutes, sometimes a few hours.
- Pick one version (with or without
www) and redirect the other to it.
What the files don't include yet
This is the list nobody mentions, and it's what separates a published design from a working website:
- A contact form that arrives. A static page has no server to receive the message. Use a form service or a platform that handles forms, and send yourself a test before launch.
- A title and meta description on every page, plus share images for social posts.
- A
sitemap.xml, submitted in Google Search Console so your pages get found. - Legal pages. In Germany and Austria an Impressum and a privacy policy are required for a business site.
- Analytics with consent, if you want to know whether anyone visits.
- Image weight. AI exports sometimes ship huge images. Compress them, or the speed advantage of a static site is gone.
Our guide to static website SEO covers the search side in more depth, and what a static website can and can't do is worth a look if you're planning bookings or a shop.
Replacing an existing site? Then the new pages must keep the old addresses, or each old address needs a 301 redirect to its new one. Otherwise you lose the rankings the old site built up. We walk through that in moving off WordPress without losing rankings, and the same rules apply when the old site was Wix, Jimdo or anything else.
The shortcut: upload the ZIP and edit it afterwards
If you'd rather not set up hosting, DNS and forms yourself, this is the problem ShiftPress solves. You
upload the ZIP from Claude Design (or any ZIP of plain .html pages, up to 30 pages per file), pick
which pages to import and which one is the front page, and each one becomes a real page in your site: proper
headings, working links, images in place, and a header and footer shared across the site. The design is
copied exactly as it is, so the import doesn't use up an AI change.
From there it's hosted in the EU (Frankfurt) on your own domain, contact forms can send to your leads inbox, the sitemap is generated for you, and you change the site by describing what you want in a chat instead of re-uploading files. The code stays yours.
Turn your Claude design into a site you can edit
Upload the ZIP, get real editable pages on your own domain, and change them by chat afterwards. Free to start, no credit card.
Bring a design ↗After launch: changing it
The first change request usually arrives within a week: a new phone number, a price, a photo. With an artifact or a design export, that means going back to Claude, regenerating, and uploading again, and hoping nothing else changed in the process. With a Claude Code project it means a session in the terminal. Our guide on how to edit a static HTML website compares the realistic options, from editing the file yourself to a CMS or an AI editor.
Frequently asked questions
Can I use my own domain for a published Claude artifact?
How do I export a website from Claude Design?
Can I host a website made with Claude for free?
Will a published Claude artifact show up in Google?
How do I add a working contact form to a site made with Claude?
React artifact or HTML artifact: which can I host directly?
The bottom line
The Publish button is for sharing a draft. A website needs your own domain, a host, a form that arrives and the basics search engines expect. Get the files out of Claude, put them on a static host, connect the domain and work through the checklist, or upload the ZIP somewhere that does those parts for you.
Either way, decide now how you'll make the first change after launch, because it will come sooner than you think.