# How to host an AI-generated website

Built your site with Lovable, Bolt, v0, ChatGPT or Claude? Where to host it, which folder to drop, and the two settings that trip people up.

If an AI tool built your site, putting it online comes down to two questions:
**which folder do you drop**, and **does the site need single-page app mode**.
The page for your tool answers both.

| Tool | What you get from it | Folder to drop | Single-page app mode? |
| --- | --- | --- | --- |
| [Lovable](/docs/ai-tools/lovable) (React and Vite projects) | the project's code | the folder its build creates | yes |
| [Bolt](/docs/ai-tools/bolt) | the project's code | the folder its build creates | usually |
| [v0](/docs/ai-tools/v0) | the project's code | depends on the project | depends on the project |
| [ChatGPT or Claude](/docs/ai-tools/chatgpt-and-claude) | an HTML file | the folder you save `index.html` in | no |

Whatever the tool, the folder you drop must have `index.html` at its top level —
not inside another folder. [Deploy from the dashboard](/docs/dashboard) shows
how to check.

## Start with the prompt

Before the tool builds anything — or before you publish something it already
built — paste [the One9x prompt](/docs/ai-tools/prompt). It tells the tool to
make plain static files with `index.html` at the top, to wire any form to your
site's built-in form service, and to list what you need to replace before going
live. It works with every tool on this page.

## Code, or a finished site?

ChatGPT and Claude usually hand you an HTML file, and an HTML file is already a
finished page: save it and drop it.

Lovable, Bolt and v0 give you the *code* for a project. A browser can't open that
code directly — it has to be turned into a finished site first, which is one
command on your own computer (a *build*). The build creates a new folder with
`index.html` in it, and that new folder is the one you drop. Each tool's page
has the exact steps.

## Add a contact form

Most generated sites come with a contact form that posts nowhere. Every site on
One9x has a form service built in — every plan includes it, no database or email
service to connect. Define the form under the dashboard's **Widgets → Forms**, then hand
the HTML it generates back to your AI tool. [Widgets](/docs/widgets#with-an-ai-tool)
has the steps and a sample prompt.

## Single-page app mode

Many sites made with these tools have several pages — `/about`, `/pricing` —
but only one real HTML file, with the pages drawn in the browser. Online, that
works when a visitor clicks a link and fails when they open `/about` directly or
refresh on it: they get a "not found" page.

Single-page app mode fixes that. In the dashboard, when you review an upload,
select **Deploy options** at the top of the file list and choose **Single-page
app** under **Unknown paths**. It is part of each upload, so choose it again
each time you drop a new version.

[SPA mode & error pages](/docs/spa-and-errors) has the details, including the
CLI flag.

Built something with a framework you chose yourself? [Frameworks](/docs/frameworks)
has a page for each.