tuqo

Claude artifact on your own domain: how to publish

The Publish button inside Claude gives you a link to a page on Claude’s site. That is enough to show a draft, but not for a real site: someone else’s address, no custom domain, no forms, no analytics, no versions. To turn an artifact into a real site, download it as a single file and put it on static hosting: on Tuqo Drop that takes a minute with no account, and on a paid plan it goes straight to your own domain with automatic HTTPS.

Step 1. Get the artifact out the right way

An artifact comes in two kinds, and everything else depends on which one you have.

  • An HTML artifact is what you want. Hover over the artifact panel: at the top there is a download button and a copy button. Save the file as index.html in an empty folder.
  • A React component is source code. It downloads as .jsx and won’t open in a browser. Either ask Claude to rewrite everything as one index.html without React, or make it a Vite project: Tuqo builds it on Node 20 and publishes the resulting dist (see the guide on deploying a Vite project).

A phrasing that saves time: “build the site as one index.html file in plain HTML, CSS and JS, no React and no build step”.

Step 2. Three ways to publish

Drop, no account. Drag index.html or the folder onto Tuqo Drop. The link appears right away; the draft lives 24 hours, with a limit of 100 files and 10 MB. Along with the address you get a claim link: it moves the site into a free account at a permanent name.tuqo.ru address.

The panel, if you need the site for good. Create a site and drag the folder into the upload area: the publish is instant, with no build. A folder upload takes up to 2,000 files and about 36 MB; a tar.gz or zip archive, up to 50 MB.

The connector: Claude publishes it itself. In Claude, open Customize → Connectors → + → Add custom connector and enter https://mcp.tuqo.ru/mcp. Leave the OAuth fields (client ID and secret) empty. Claude sends you to Tuqo to sign in and choose the project and the access level. After that, “publish this artifact” creates a site and returns the live link. Step by step: Deploy from Claude.

Step 3. Your own domain

Custom domains come with paid plans, from Start at 590 ₽/mo (10 domains), or as the Custom domain add-on at 149 ₽/mo, which also works on the Free plan. Prices are in rubles; the pricing page shows approximate dollars and euros. The steps are the same either way:

  1. On the site page, open the Domains tab and add the domain.
  2. At your registrar, add two records: an A record pointing to the IP shown in the panel, and a TXT record _tuqo-verify with the token from the panel.
  3. Click Verify domain. Once ownership is confirmed, a free SSL certificate is issued and renewed automatically.

A detailed walkthrough with the usual DNS mistakes is in the guide on attaching a custom domain.

The main problem with artifacts: base64 images

An artifact can’t load images from other sites, so Claude embeds them right in the code as data:image/... strings. The page swells to several megabytes: it has to load in full before the first paint, and base64 doesn’t compress, so a visitor on a phone waits several seconds.

Tuqo catches this with the Images embedded in HTML check (the “worth fixing” level). The report says:

The whole page has to load before the first paint, and base64 doesn’t compress. On a phone, visitors wait several seconds.

What to do: save the images as separate files in an images folder next to index.html and keep ordinary links in the markup. Through the connector, Claude passes images as separate files (in deploy_files with encoding: base64), not inside the page. While you’re at it, scale them down to their actual on-screen size.

The rest of the 14 checks run on every publish and block nothing: broken paths, resources over http:// on an HTTPS site, a missing viewport, a form with no submit address, keys in the files.

A prompt for Claude

Build a [topic] site as one index.html file: plain HTML, CSS and JS inside the file,
no React, no build step, no external libraries or fonts from other sites.
Don't embed images as base64: use relative paths like images/photo.jpg,
I'll put the files next to it. Add lang="en", meta charset UTF-8, meta viewport
and a meaningful title.

FAQ

Why is this better than the Publish button inside Claude?

A site on Tuqo has its own address and HTTPS, and on paid plans your own domain, versions with rollback, forms and visit analytics without cookies. An artifact stays inside Claude and opens only by Claude’s link, and search engines don’t index it as your site.

The artifact weighs 8 MB. Is that normal?

Usually that’s base64 images inside the HTML. Move them to separate files: the page gets several times lighter, and the browser shows the text without waiting for the images.

It worked in the artifact but not after downloading

Inside the artifact, Claude supplies the libraries and fonts. The downloaded file keeps links to third-party CDNs, some of which load slowly or not at all for visitors in Russia. Ask for plain CSS inside the file and system fonts.

Can I update the site from the chat?

Yes, through the connector: “change the heading on the home page” produces a new version in seconds. The previous one stays, and you can roll back to it; how many versions are kept depends on the plan.

Publish an artifact → · Deploy from Claude →