Journal
How to put your AI-built website online for free (Cloudflare, Netlify, Vercel)
Upload the folder that holds your index.html to a free host. Cloudflare Pages and Netlify both let you drag a folder into the browser with no command line; Vercel needs your site in a Git repository, and its free plan is for non-commercial use only. You get a free address immediately, and you can point your own domain at it afterwards.
First: know what to upload
Hosts want the finished site, not the whole project. If your AI tool gave you plain HTML, CSS and JavaScript, upload the folder that contains index.html. If it built a project with a build step (Astro, Next.js or React), upload the build output folder, usually called dist, build or out. If you are not sure, ask your AI tool: "Give me the finished static site as one folder I can upload, and tell me which folder it is."
Facts below come from each host's official documentation, which we read on 25 October 2026. Plans and limits change, so check the host's page before relying on a number.
Cloudflare Pages: easiest for a finished folder
- In the Cloudflare dashboard, open Workers & Pages.
- Select Create application, then Get started, then Drag and drop your files.
- Type a project name.
- Drag your site folder (or a ZIP file) into the upload frame.
- Select Deploy site. When the upload finishes, select Save and Deploy.
- Your site is live at your-project-name.pages.dev.
- To update it later, open the project and select Create a new deployment.
- Available on all plans, including Free.
- Drag and drop accepts up to 1,000 files and 25 MiB per file.
- Free plan: 500 deploys a month, up to 100 custom domains per project.
- Cloudflare's documentation does not state a bandwidth limit or a commercial-use restriction on Pages.
- A project created with drag and drop cannot be switched to Git later.
Netlify: the quickest first try
- If your site is a ZIP, unzip it so the files sit in one folder.
- Open app.netlify.com/drop.
- Drag the folder that holds index.html into the drop zone.
- The site goes live at a unique Netlify address.
- To update it later, drag the new folder onto the Deploys page of your site.
- The Free plan is $0 a month with 300 credits a month and a hard limit, so you are not charged.
- It includes custom domains with SSL and a global CDN.
- Netlify states a limit of 54,000 files per directory.
- The pages we read do not say how long a drop without an account stays online. Sign in to keep your site.
Vercel: best if your site is already in Git
- Put your site in a Git repository on GitHub, GitLab or Bitbucket.
- Sign in to the Vercel dashboard and click New Project.
- Choose your repository.
- Set the project name, framework preset and output settings.
- Click Deploy. Every push to the main branch publishes a new production version.
- The free plan is called Hobby. Vercel states it is for non-commercial, personal use only, so a business website needs a paid plan.
- Hobby includes up to 50 custom domains per project and 100 deployments a day.
- The documentation we read describes no drag-and-drop upload; the no-command-line route is a Git repository.
Which one should you choose?
| Cloudflare Pages | Netlify | Vercel | |
|---|---|---|---|
| Drag a folder in | Yes | Yes (even without an account) | No, needs Git |
| Free for a business site | No restriction stated in the pages we read | No restriction stated in the pages we read | No: Hobby is non-commercial |
| Free address | your-project.pages.dev | your-site.netlify.app | your-project.vercel.app |
| Custom domain on free plan | Yes | Yes, with SSL | Yes |
For a business site made from a folder, Cloudflare Pages or Netlify is the simplest. Pick Vercel if your project is already in Git and the site is personal or non-commercial.
Connect your own domain
The host gives you a free address. A domain you own, bought from a registrar, can point to it. The exact record depends on who runs your domain's DNS, and each host's documentation shows the values to use.
- Cloudflare Pages: open the project, then Custom domains, then Set up a domain. For www, add a CNAME record to your-project.pages.dev (add the domain in the dashboard first, or you will see a 522 error). For the bare domain, Cloudflare asks you to use its nameservers.
- Netlify: Domain management, then Add a domain you already own. With external DNS, use an ALIAS or A record for the bare domain and a CNAME for www. Changes can take up to 48 hours.
- Vercel: Settings, then Domains, then Add Domain. Add the A or CNAME record that Vercel shows, and wait until the Domains page shows it as configured.
If something goes wrong
A blank page usually means the wrong folder was uploaded: the site must open from index.html at the top of the folder. Broken images mean the file paths point outside the folder. Our help page has a ready fix prompt for deploy errors. If you would rather not do it yourself, we can publish it for you. The same steps, with each host's source links, are on the publish guide.
Questions, answered
Can I really host a business website for free?
Yes, on Cloudflare Pages or Netlify, whose documentation states no restriction on commercial sites. Vercel's free Hobby plan is for non-commercial use only.
Do I need to know the command line?
No. Cloudflare Pages and Netlify both accept a folder dragged into the browser. Vercel needs a Git repository, which you can create from the GitHub website.
How do I use my own domain?
Add the domain in the host's dashboard, then add the DNS record the host shows (a CNAME for www, and an A or ALIAS record for the bare domain, depending on the host).
How long does it take to go live?
The upload takes a minute or two. A new domain can take up to 48 hours for DNS to spread, though it is often faster.
Where this comes from
- Cloudflare Pages documentation: Direct Upload, Limits, Custom domains
- Netlify documentation: Create deploys, Free plan, Get started with domains
- Vercel documentation: Deploying from Git, Hobby plan, Add a domain
- All read on 2026-10-25; limits change