Hosting Alternatives for Websites Made with ChatGPT

From a ChatGPT answer to a live website

People increasingly ask ChatGPT for more than drafts. The useful output is often a working website that another person needs to open. Examples are a report, a dashboard, a prototype, a landing page, a game or a client page.

ChatGPT can write that code, and its canvas can preview HTML and React code inside the chat. But a preview is not a public address. To share the site with a client, a team or the whole internet, you need to put the files on a web host. A web host is a service that puts your files on the internet.

This guide compares four hosting alternatives for websites made with ChatGPT. Then it shows how to get the files out of the chat and publish them. It also shows how to protect the site when necessary and how to update it later at the same URL.

Find out what kind of site you have

The right host depends on the files, not on the tool that wrote them. A static host is a host that only serves files and runs no server code.

What ChatGPT gave you What it needs Where it can go
One HTML file with inline CSS and JavaScript Nothing. It runs as it is Any static host
A folder with index.html, CSS, JavaScript, images and data files Keep the folder structure intact Any static host
A React or Vite project with package.json A build step that produces a dist folder Any static host, after npm run build
An app with a server, database, logins or secret API keys A server or serverless functions A host with functions, plus a database service

Most dashboards, reports, landing pages and small tools are in the first three rows. These are static sites (sites made only of files), and static hosting for them is simple.

Get the files out of ChatGPT

Ask for files that you can save, not only code in the chat. You can use a prompt like this:

Turn this into a static website I can host anywhere.
Put every file in one folder with index.html at the top level.
Use relative paths for CSS, JavaScript, images and data files.
Do not use a backend, API keys or a build step.
List every file with its full path, then give me the contents of each one.

Save each file in a folder on your computer. Use exactly the names and paths that ChatGPT listed. If ChatGPT offers a ZIP file to download, download it and unzip it. Then open index.html in your browser and make sure that it loads.

If the result is a React project, ask for the full project with package.json. Then build it on your computer:

npm install
npm run build

By default, Vite projects write the finished site to a dist folder (Vite deployment guide). You upload that dist folder.

Before you upload anything, remove .env files, API keys, private notes and test data. Visitors can download every file that you upload to a static host.

Compare the hosting alternatives

Host How you upload Private access option Notes
Cloudflare Pages Drag and drop a folder or ZIP, or run Wrangler Cloudflare Access: only allowed email addresses get in, with a one-time code You cannot switch a drag-and-drop project to Git deploys later
Netlify Drag a folder into Netlify Drop, run the CLI, or connect Git Site-wide password on Pro and Enterprise plans Built-in form handling for contact forms
GitHub Pages Commit the files to a repository None for typical accounts: the site is public, even from a private repository Good when you already keep the project on GitHub
Vercel Run the vercel CLI in the folder, or import a Git repository Vercel Authentication (visitors need a Vercel account), or Password Protection as a paid add-on, not on Hobby Good fit for Next.js and other framework apps

If you want a link today and have no Git experience, start with Cloudflare Pages or Netlify Drop. If you or an AI coding agent will edit the site often, keep it in a GitHub repository. Then deploy (publish each new version) from there.

Publish on Cloudflare Pages

  1. In the Cloudflare dashboard, open Workers & Pages.
  2. Select Create application > Get started > Drag and drop your files.
  3. Enter a project name. It becomes part of the address: <project>.pages.dev.
  4. Drag in the folder, or a ZIP of the folder. Then select Deploy site.
  5. Open the address in a private browser window. Make sure that every page works.

The dashboard upload accepts up to 1,000 files. For bigger sites, or to deploy from a terminal, use Wrangler:

npx wrangler pages deploy ./my-site

The Cloudflare Pages tutorial for AI-built sites shows custom domains and other settings.

Publish on Netlify

  1. Log in to Netlify. Then open Netlify Drop.
  2. Drag your site folder into the deploy zone.
  3. Netlify publishes the site and shows the address of the new project.
  4. To update the site later, open the Deploys page of the project. Drag the new version of the folder into the deploy zone at the bottom.

If you drop a finished folder, you can skip the build step. If you drop a project with a package.json while you are logged in, Netlify tries to detect the framework and build it. Our Netlify publishing guide shows each screen.

Publish on GitHub Pages

  1. Create a new repository on GitHub. On GitHub Free, the repository must be public for Pages to work.
  2. Upload the site files so that index.html is at the top level or in a /docs folder.
  3. In the repository, open Settings > Pages.
  4. Under Build and deployment, set Source to Deploy from a branch (publishing source). Choose the branch and the folder. Then select Save.
  5. After a few minutes, select Visit site. A project site has the address https://<user>.github.io/<repository>/.

A project site is under /<repository>/. For a Vite build, add base: '/<repository>/' to vite.config.js. If you do not, its CSS and JavaScript will not load (Vite on GitHub Pages). Our GitHub Pages guide shows all the steps.

Protect the site before you share it

Some sites contain client data, unreleased plans, internal numbers or other content that you do not want to make public. For these sites, set up access before you send the link:

  • On Cloudflare Pages, put Cloudflare Access in front of the project. Then only allowed email addresses can sign in. See our Cloudflare Pages access guide.
  • On Netlify, add a site-wide password on a Pro plan. See the Netlify password guide.
  • On Vercel, turn on Deployment Protection. See the Vercel protection guide.
  • GitHub Pages has no password option for typical accounts. Move private sites to one of the hosts above.

A password prompt in the JavaScript of the page does not protect the site. The content is still in the files that the browser downloads.

Update the site and keep the same URL

The purpose of hosting is a stable address. When you ask ChatGPT for changes, ask for only the changed files:

Update the site: make the executive summary shorter and add a metrics table
that reads data/metrics.csv. Keep all file names and paths the same.
Show me only the files you changed, with their full paths.

Replace those files in your local folder. Open the site on your computer and make sure that it works. Then deploy again to the same project:

  • On Cloudflare Pages, open the project and select Create a new deployment. You can also run the same wrangler pages deploy command again.
  • On Netlify, drag the folder into the Deploys page of the project.
  • On GitHub Pages, commit the changed files to the publishing branch.
  • On Vercel, run vercel --prod again from the folder.

Before each deploy, keep a copy of the last working version. If a change breaks something, you can then roll back to that copy.

When static hosting is not enough

A static host serves files. It does not run a database, keep users logged in, or hide a secret API key. Some ChatGPT sites call an AI API, a payment service or a database with a secret key. Move each of these calls to server-side code, which runs on the host and not in the browser. Examples are Cloudflare Pages Functions, Netlify Functions and Vercel Functions.

Never paste a secret key into front-end JavaScript (the code that runs in the browser). Every visitor can read it.

A contact form does not always need your own backend (server code). Netlify can collect form submissions from a plain HTML form. Other hosts work with form services.

Which alternative is right for you?

  • For a one-off page or dashboard without Git, use Cloudflare Pages or Netlify Drop.
  • For a private review with named people, use Cloudflare Pages with Cloudflare Access.
  • For an open-source or portfolio project that is already on GitHub, use GitHub Pages.
  • For a framework app that will grow (Next.js, server functions), use Vercel or Netlify with Git deploys.

ChatGPT can write the first version, and another AI assistant can improve it later. If you deploy each new version to the same project, the address stays the same.

A docs portal with Ask AI
and support tickets

Connect a repository, or describe your product to start. Each docs site has search, Ask AI, an API console, an MCP server and support tickets.

  • Publishes from GitHub on every push
  • Works with Mintlify repositories
  • API console from your OpenAPI file
  • MCP server and llms.txt for AI agents
  • Ask AI and support tickets
  • Analytics for people and AI agents
Start Free Questions? Ask AI in our docs

No card required.

Frequently Asked Questions

Can I use my own domain for a site ChatGPT made?

Yes. On Cloudflare Pages, Netlify, GitHub Pages and Vercel, you can add a custom domain in the project settings. Each host shows the DNS records to create. On Cloudflare Pages, add the domain before you put Cloudflare Access on it. You cannot add a domain that already has an Access policy.

Will the site show up in Google?

Search engines can index a public site (add it to their results) after they find a link to it. To make this faster, add the site to Google Search Console. Search engines cannot crawl (read) a site behind a password or Cloudflare Access, so it stays out of search results.

Share:
Markdown version

Related Articles

↧
Loading PDF…