Updated 21 min readBy The VibeDeploy team

How to Deploy AI-Built Websites in 2026: The Complete Guide

Every way to get an AI-built site live in 2026: MCP deploys, a deploy guide for any chat AI, upload or GitHub, containers, and a 25-tool export matrix.

Short answer

Get the output out of the AI tool, then put it on a host that serves it on your own domain with HTTPS. On VibeDeploy there are three routes: connect your AI over MCP and say "deploy this", paste the deploy guide into any chat AI, or upload a build folder or connect GitHub. Static sites and single-page apps are served directly; an app that needs a server or a database runs in containers next to the site.

Put your AI-built site online today

Upload a build, connect GitHub or let your AI deploy it over MCP. Your own domain and SSL, hosted in Belgium. 14 days free, no card.

AI tools have become very good at making websites. Lovable, Bolt.new and v0 build whole apps in a browser tab, Claude and ChatGPT write a page in a single reply, and Claude Code, Codex and Cursor write projects straight to your disk. Most of them show you a preview, and several will host the result on a subdomain of their own. The questions start when you want your own domain, a host you choose, or a site that keeps running when you stop paying for the builder.

This guide is about that last step, as it stands in October 2026. It covers the three ways to get an AI-built site online, the route for apps that need a server, a decision tree by output type, and a matrix of 25 AI tools: what each one gives you, how you get it out, whether its own free plan can use your domain, and the shortest route from there. Tool facts were checked against each vendor's own documentation on 13 October 2026. Where a vendor's docs did not settle a question, the matrix says "check".

What a deployed AI-built site needs

A preview is not a deployment. Previews run in a sandbox or a development server, often with hot reload and other shortcuts that only exist while you build. A deployed site needs five things: a public address, HTTPS, your own domain once people outside your team will see it, a server that stays up after you close your laptop, and a way back when an AI regeneration breaks something.

What you hand to a host comes in four shapes:

  • Plain HTML files. Often a single index.html, sometimes with a stylesheet and a script next to it. Many chat artifacts and DeepSite projects look like this. Nothing to build.
  • A project that needs a build. A folder with a package.json: Vite, Astro, Next.js, TanStack Start. The build turns it into the files a browser loads, usually in dist/, build/ or out/.
  • A Git repository. Where app builders such as Lovable, Bolt.new and v0 sync your code, and where coding agents already work.
  • An app with a server. Its own API, server-side rendering or a database connection. Files alone do not run it.

The shape decides the route, so it pays to know which one you have before you pick a host.

Three ways to deploy, plus one for backends

1. Your AI deploys it over MCP

MCP (Model Context Protocol) lets an AI client call tools on outside services. VibeDeploy runs an MCP server at https://mcp.vibedeploy.be/mcp with 40+ tools: deploy a site, edit live files, connect a domain, switch on the forms relay, read visitor analytics. You add the server once and sign in through OAuth. From then on, "deploy this site to VibeDeploy" is the whole deploy step: the AI uploads the files and replies with the live URL, and later chats can edit and redeploy the same site. The mechanics are explained in What is MCP hosting.

Adding the server is one step in each client:

  • Claude: on claude.ai or in Claude Desktop, open Customize > Connectors, click + Add, choose Add custom connector and paste the URL (if Claude asks for an OAuth client, choose Register automatically). The connector then works on the web, in Desktop, on mobile and in Cowork. Claude's help center says the Free plan includes one custom connector. The connector walkthrough has every screen.
  • Claude Code: run claude mcp add --transport http --scope user vibedeploy https://mcp.vibedeploy.be/mcp, then /mcp inside a session to sign in.
  • Codex CLI: run codex mcp add vibedeploy --url https://mcp.vibedeploy.be/mcp, then codex mcp login vibedeploy.
  • Cursor, VS Code with Copilot, Windsurf (now Devin Desktop), Gemini CLI and ChatGPT (as a custom MCP server, on plans with write access): install links and config snippets are on the MCP setup page.

One thing the MCP server does not do is restore an old version. Every deploy is kept as a version with a restore point taken before it, and bringing an earlier one back is one click in the site's History tab in the dashboard, within your plan's restore window: 3 days on the trial, Solo and Maker, 7 on Studio, 30 on Business.

2. Paste the deploy guide into any chat AI

Not every assistant can add an MCP server. For those, the dashboard has a deploy guide (labelled Magic File there): one text file with instructions and a private deploy key. Paste it into ChatGPT, Gemini, Grok, Mistral or any other chat. If the AI can make web requests, it sends the files to VibeDeploy's deploy API itself and answers with the URL. If its sandbox has no network, it gives you a deploy page to open in your browser instead, with download and copy buttons as a fallback. Because the guide carries your deploy key, keep it out of public files and out of Git.

3. Upload a build or connect GitHub

The dashboard takes a ZIP, a folder or a single HTML file. A lone HTML file is served as the site's index.html, and a ZIP whose files sit inside one top-level folder is unpacked from that folder. A project that still needs its build, meaning a package.json without build output, is rejected with UNBUILT_PROJECT. Run the build first and upload what it produces:

npm install
npm run build
# upload dist/ (Vite) or build/ or out/ (Next.js static export)

If the code lives on GitHub, connect the repository instead. Every push to the branch you pick starts a build in an isolated build pod: npm ci (or npm install when there is no lockfile), then npm run build, and the first of dist, build, out or public goes live. Builds follow pushes to that one branch; there are no pull-request previews.

Backends: containers next to the site

Static sites and single-page apps are served directly. A site can also run containers next to it (your own server, Postgres, MySQL, Redis or workers; up to 6 services with 2 CPU and 2 GiB in total), deployed by your AI through the MCP tool deploy_app and isolated with gVisor. Container data is not yet included in snapshots.

A few practical rules come with that. Containers can reach the internet, but not private networks and not SMTP port 25. API keys and OAuth client secrets go into the dashboard, under the site's Settings tab in the Secrets section, and never into the chat. There is no dashboard view of container logs yet; your AI reads them with get_app_status. This is the route for a Node or Python API, a server-rendered framework, or a database your front end talks to.

Put your AI-built site online today

Upload a build, connect GitHub or let your AI deploy it over MCP. Your own domain and SSL, hosted in Belgium. 14 days free, no card.

Where to host a vibe-coded app: decide by output

Vibe coding leaves you with one of five things. Here is how each one gets online, and the trap that goes with it.

What your AI produced How you recognise it Route on VibeDeploy Watch out for
A single HTML file One .html file, often index.html Upload the file, or let the AI deploy it over MCP Links to files that only existed in the AI's sandbox
A static build package.json with a build script: Vite, Astro, a Next.js static export Build and upload dist/, or connect GitHub Uploading the source instead of the build
A single-page app Routes such as /about that only exist in JavaScript Same as a static build; unknown paths fall back to index.html A multi-page site should ship a top-level 404.html
An app with a server or database Server code, API routes, server-side rendering, a Postgres connection string Containers next to the site, started with deploy_app Container data is not yet in snapshots; secrets belong in Settings
An internal tool Only your team should open it A password-protected, private or invite-only site (Maker and up) A public container service needs a public site or an IP allowlist

Static output is the easy case. VibeDeploy serves clean URLs, so /about is answered by about.html, which is the file layout a Next.js static export produces. Single-page apps get the fallback to index.html they need for client-side routes. A site with a top-level 404.html returns real 404s instead.

Server-rendered output is growing. Lovable apps created since 13 May 2026 run on TanStack Start, and Lovable's own hosting guide says such an app needs a host that runs a server, not one that only serves files; older Lovable projects on React + Vite still build to static files in dist/. Next.js lists the features a static export cannot use, among them cookies, redirects, Server Actions and incremental static regeneration. Google AI Studio apps can include a server-side Node.js component. All of these need running code. A host that only serves files cannot run them; on VibeDeploy the server part runs as a container next to the site.

Internal tools. For a tool only your team should see, make the site password-protected, private or invite-only (Maker and up). That protection is enforced by the server that delivers the static files, so it covers the static part. A tool with its own server in a container can sit behind an IP allowlist (also Maker and up) or handle sign-in itself.

When to stay where you are. If an app leans on one platform's own runtime, such as its edge functions or a builder's built-in database and auth, moving only the front end can leave you maintaining two places. Sometimes the honest answer is to keep it on that platform and upgrade for your domain there.

The tool matrix: 25 AI tools and how their output gets online

Here is how to read it. "What you get" is the form the output takes. "Getting it out" is the documented export. "Your domain on its free plan" asks whether the tool's own free plan can put the site on your domain, per the vendor's docs. "MCP" says whether the tool can add a remote MCP server such as VibeDeploy's: "yes" means the install steps are on our MCP setup page, "untested here" means the vendor documents MCP support but we have not run a deploy through it. "Check" means the vendor's documentation did not answer the question on 13 October 2026.

Chat assistants

Tool What you get Getting it out Your domain on its free plan GitHub MCP Best route here
Claude (chat artifacts) One HTML page or React component Copy or download from the artifact panel No: shared artifacts open on claude.ai n/a Yes: custom connector (Claude's help center says the Free plan includes one) Connector: Claude artifacts guide
Claude Design A design Export as .zip or standalone HTML, or Handoff to Claude Code None documented n/a Through the Claude Code handoff Upload the export: Claude Design guide
ChatGPT (chat and canvas) Code in the conversation Copy the code, or paste the deploy guide No: Sites is not on Free or Go n/a Custom MCP server, on plans with write access Deploy guide or upload: ChatGPT guide, canvas guide
ChatGPT Sites A Site hosted by OpenAI, built in Work or Codex Check No: Sites needs Plus, Pro or a workspace Check n/a Upload the files you have: ChatGPT guide
Gemini (app and Canvas) Canvas code, previewed in the chat Copy contents; share links open only on gemini.google.com No: share links stay on gemini.google.com n/a Gemini CLI: yes Upload or deploy guide: Gemini guide
Grok (Grok Build) An app published on a grok.me address Push the whole project to a GitHub repo Check: custom domains are listed, plan limits are not Push to a repo Custom connectors (untested here) GitHub build: Grok guide
Mistral Vibe (formerly Le Chat) Code in the chat, or a project from its coding agent Copy, or local files from the CLI or IDE agent No hosting documented Check Custom connectors with OAuth 2.1 (untested here) Deploy guide, upload or MCP: Mistral guide

App builders

Tool What you get Getting it out Your domain on its free plan GitHub MCP Best route here
Lovable A full project: TanStack Start since 13 May 2026, React + Vite before Git sync on every plan; Download codebase (.zip) on paid plans No: connecting a domain needs a paid plan Two-way, all plans Custom MCP servers in chat (untested here) GitHub build, or a container for TanStack Start: Lovable guide, domain walkthrough
Bolt.new A Node project Project title > Export > Download (ZIP) No: custom domains are paid; Free publishes on bolt.host Two-way Custom MCP servers with MCP OAuth (untested here) Upload dist/ or GitHub build: Bolt guide, export walkthrough
v0 A Next.js app with React, TypeScript, Tailwind and shadcn/ui Export the code, or connect GitHub Yes, on Vercel: Hobby projects accept custom domains (personal, non-commercial use) Two-way MCP servers in chats (untested here) Static export to out/, or a container: v0 guide
Replit A project in your Replit workspace Push to GitHub from the Git pane Check: Starter publishes one app, and that free link goes down after 30 days One-click sync Custom MCP servers by URL with OAuth (untested here) GitHub build; servers in a container: Replit guide
Google AI Studio A web app, optionally with a Node.js server part ZIP export or GitHub sync Check: apps get a Cloud Run URL or an ai.studio subdomain; own domains are not described Two-way Check GitHub build, plus a container for the server: AI Studio guide
Base44 An app hosted by Base44 ZIP or GitHub on the Builder plan or higher No: the Free plan lists no domain Builder plan and up Check GitHub build of the front end: Base44 guide
Anything (formerly Create.xyz) An app on a created.app subdomain Code tab > Download Project (ZIP) No: custom domains need Pro Not yet: GitHub sync is listed as coming soon Check Upload a build of the export; its backend functions and database run on Anything: Anything guide
DeepSite HTML, CSS and JavaScript files, saved as a static Hugging Face Space Download the project as a ZIP No: custom domains on Spaces need Hugging Face PRO or a Team plan n/a n/a Upload the ZIP: DeepSite guide
HeyBoss A site hosted by HeyBoss Export as an archive or Git repository (plans not stated) Check Import the export into GitHub Check Upload the export: HeyBoss guide
Softgen A web app in a GitHub repository Full repository access once you have paid No: production hosting is not included Yes, once paid Check GitHub build: Softgen guide
Bubble An app that runs only on Bubble None: Bubble apps cannot be exported as code No: custom domains are on paid plans No Check Host the marketing site around it: Bubble guide

Coding agents and editors

Tool What you get Getting it out Your domain on its free plan GitHub MCP Best route here
Claude Code Files in your project folder Already on your disk No: its artifacts are single pages on claude.ai Works with git directly Yes: claude mcp add MCP: Claude Code guide, terminal walkthrough
Codex Local files, or commits and pull requests from cloud tasks Already in your folder or repository No: only through ChatGPT Sites on Plus, Pro or a workspace (custom domains are not available in Enterprise workspaces at launch) Yes Yes: codex mcp add MCP: setup steps
Cursor A local project Already on your disk None (an editor) Your own Git remote Yes: one-click install link MCP: Cursor guide
Windsurf (now Devin Desktop) A local project Already on your disk No: App Deploys give a windsurf.build preview address (beta) Your own Git remote Yes MCP: Windsurf guide
GitHub Copilot in VS Code A local project in a repository Already in your repository None (an editor) Native Yes: install link or .vscode/mcp.json MCP or GitHub build: Copilot guide
Trae A local project Already on your disk None (an editor) Your own Git remote Remote servers over Streamable HTTP (untested here) MCP or upload: Trae guide
Tempo Pull requests in your own repository, from Claude or Codex sessions Already in your repository No hosting documented Yes Check GitHub build: Tempo guide

What the matrix shows

  • Your own domain is mostly a paid feature on the builders. Lovable, Bolt.new, Bubble, Base44 and Anything put custom domains on paid plans. v0 is the exception, because it publishes to Vercel and Vercel's Hobby plan accepts custom domains, for personal, non-commercial use only.
  • GitHub sync is the cleanest way out. Lovable, Bolt.new, v0, Replit and Google AI Studio all keep a repository in sync. Connect that repository to a host and every push rebuilds the site, while you keep building in the tool.
  • Most coding agents and editors bring no production hosting of their own, and that is where MCP fits. Windsurf's App Deploys give a windsurf.build preview address, the hosting built into Codex is ChatGPT Sites (in the ChatGPT desktop app, on Plus, Pro and workspace plans), and Claude Code's artifacts are single pages on claude.ai. Claude Code, Codex, Cursor, VS Code and Windsurf each add a remote MCP server in one step, after which the agent that wrote the code also ships it.
  • More output now needs a server. New Lovable apps, Next.js apps that use server features and AI Studio apps with a server part all need a host that runs code, not only files. That is the dividing line between a static host and a host with containers.

Your own domain and HTTPS

Every VibeDeploy site gets a vibedeploy.be address straight away, so you can share a working link while the domain is still being set up. To use your own domain, add it to the site in the dashboard, or ask your AI, which uses the tools add_custom_domain and verify_custom_domain. Then publish the DNS records you are shown: a TXT record that proves the domain is yours, and a CNAME to proxy.vibedeploy.be or, for an apex domain, an A record. Once DNS points at VibeDeploy, the certificate is issued automatically through Let's Encrypt. The trial includes one domain: link one you already own, or buy one in the dashboard.

Mistakes that break AI-built deploys

  • Treating the preview as the site. Previews lean on development servers and sandbox tricks that do not survive a build. Build locally and open the output before you ship it.
  • Hardcoded local addresses. AI tools like to leave http://localhost:3000 or 127.0.0.1 in fetch calls. Search the code for both before deploying.
  • Secrets in front-end code. Vite puts variables prefixed with VITE_ into the client bundle, and its docs warn they should not contain sensitive information such as API keys. Anything in the browser bundle is public. Keep keys on a server: in a container whose secrets you set in the dashboard, or in your backend service.
  • Uploading source instead of the build. A src/ folder full of TypeScript does not run in a browser. Upload dist/, or connect GitHub and let the build run for you.
  • No 404 page on a multi-page site. Without a top-level 404.html, a mistyped URL shows your home page instead of an error.
  • No way back. A bad regeneration can reach production in seconds. On VibeDeploy every deploy is kept as a version with a restore point before it, so the previous version is one click away in the History tab.

What it costs on VibeDeploy

The trial runs 14 days without a card: one site, and one custom domain you already own can be linked. After that, Solo is EUR 4 a month for one site and one domain, Maker EUR 15 for three sites with private, invite-only and IP-allowlist access, and Studio EUR 39 for ten sites with staging. Prices include VAT where it applies. There is no bandwidth overage billing; when a site outgrows its plan, you upgrade. If the trial ends without a plan, the site goes offline and your account and files are kept for 30 days, so choosing a plan brings it back at the same address. Details are on the pricing page.

Sites and their containers run on VibeDeploy's own Kubernetes cluster in Belgium, in one region and without a global edge network, under EU jurisdiction. The eight subprocessors are listed on the subprocessors page, and customer site content does not pass a US processor unless you use the optional AI builder features. If GDPR is part of your brief, the GDPR guide for AI-built sites covers what the regulation asks of a host.

Guides for each situation

Sources

VibeDeploy facts come from our own product and documentation. Third-party facts were checked on 13 October 2026 on the vendor's own pages:

From the VibeDeploy team

Ship your AI-built site in minutes

VibeDeploy hosts your AI-built websites in the EU with custom domains, automatic SSL, and a 14-day free trial that gets you online today.

Deploy guides for this topic

Questions people ask

What is the easiest way to deploy a website an AI built?

Let the AI do it. If your tool can add a remote MCP server (Claude, Claude Code, Codex, Cursor and VS Code with Copilot all can), add https://mcp.vibedeploy.be/mcp once, sign in, and say "deploy this": the AI uploads the files and replies with the live URL. If it cannot, paste the deploy guide from the dashboard into the chat, or download the files and upload them yourself.

Can I put an AI-built site on my own domain for free?

Usually not with the builder itself. Lovable, Bolt.new, Bubble, Base44 and Anything list custom domains on paid plans only, according to their own documentation; v0 is an exception because it publishes to Vercel, whose Hobby plan accepts custom domains for personal, non-commercial projects. On VibeDeploy the 14-day trial needs no card and can link one domain you already own. After that, Solo costs EUR 4 a month. Prices include VAT where it applies.

Do I have to build the project before I upload it?

If the folder has a package.json, yes. Run npm install and npm run build, then upload the dist/ or build/ folder that appears; an upload of unbuilt source is rejected with the code UNBUILT_PROJECT. Or connect the GitHub repository: every push to your branch then runs npm ci and npm run build for you and publishes the first of dist, build, out or public.

Can VibeDeploy run a backend or a database for my app?

Yes. Static sites and single-page apps are served directly. A site can also run containers next to it (your own server, Postgres, MySQL, Redis or workers; up to 6 services with 2 CPU and 2 GiB in total), deployed by your AI through the MCP tool deploy_app and isolated with gVisor. Container data is not yet included in snapshots.

Where should I host a vibe-coded app?

Decide by what the AI produced. One HTML file or a static build runs on any static host. A single-page app needs a host that falls back to index.html for its routes. An app with its own server or database needs a host that runs containers, or a backend service next to a static front end. If the app depends on one platform's own functions or edge runtime, staying on that platform is often simpler.

Related reading

7 min read

Localhost to Live URL: Turn Your Project into a Public Link

Turn a localhost project into a shareable live HTTPS URL. Compare a temporary tunnel with permanent EU hosting, then connect your own domain and HTTPS.

localhostdeploymenthosting
14 min read

Bolt.new Project Download: Export Your Project as a ZIP

Download your Bolt.new project as a ZIP, build it locally, and deploy it to a production URL with EU hosting, a custom domain, and automatic SSL included.

boltdeploymenthosting
13 min read

Lovable Custom Domain on the Free Plan: Your Options

Lovable's Free plan has no custom domain. Upgrade to Pro, or sync to GitHub and host the build on your own domain for EUR 4 a month. Steps and DNS fixes.

lovablecustom-domaindns
8 min read

Claude Artifact Custom Domain: Download, Host, and Launch

Download or copy your Claude artifact code, host it outside Claude, and connect a custom domain with EU hosting and automatic Let's Encrypt SSL included.

claudeartifactscustom-domain
9 min read

/home/workdir/artifacts/index.html: How to Get Your File Out

Claude saved your site to /home/workdir/artifacts/index.html. That path lives in Claude's sandbox, not on your computer. Get the file out and put it on a live URL.

claudeartifactssandbox
12 min read

Deploy a Website From Claude With One Custom Connector

Add VibeDeploy as one custom connector in Claude on the web, Desktop, mobile or Cowork, then let Claude publish your site and connect your domain.

claudemcpconnectors