publish
Put it online for free.
Three hosts with a free plan, plain steps for each, and how to point your own domain at it.
What to upload: the folder that holds index.html. If your AI tool built a project that needs a build step (Astro, Next.js, React), upload its build output folder (often named dist, build or out), not the whole project. If you are not sure, paste this into your AI tool: "Give me the finished static site as one folder I can upload, and tell me which folder it is."
Cloudflare Pages
Easiest for a finished folderDrag a folder (or a ZIP) into the dashboard. Free, no command line.
- In the Cloudflare dashboard, open Workers & Pages.
- Select Create application > Get started > 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 Pages documentation does not state a bandwidth limit or any commercial-use restriction.
- A project made with drag and drop cannot be switched to Git later.
official source: Direct Upload · Limits · Custom domains
Netlify
Quickest first tryNetlify Drop publishes a folder instantly, even without an account.
- If your site is a ZIP, unzip it first so the files sit in one folder.
- Open app.netlify.com/drop.
- Drag the folder with your finished site (the one 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; you are never charged.
- Free includes custom domains with SSL and a global CDN.
- Netlify states a limit of 54,000 files per directory. It does not state a file-size limit for drops or a commercial-use restriction on the pages we read.
- Netlify's pages we read do not say how long a drop without an account stays online. Sign in to keep your site.
official source: Create deploys (Drag and drop) · Free plan · Get started with domains
Vercel
Needs a Git repositoryBest if your site is already in GitHub, GitLab or Bitbucket.
- 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.
- On the configure page, 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. A business website needs a paid plan.
- Hobby includes up to 50 custom domains per project and 100 deployments a day.
- Vercel's documentation we read describes no drag-and-drop upload; the official no-command-line route is a Git repository.
official source: Deploying from Git · Hobby plan · Add a domain
Connect your own domain
The host gives you a free address. A domain you own (bought from a registrar) can point to it. Each host's exact steps:
Cloudflare Pages
- Open your project, then Custom domains > Set up a domain, and enter the domain.
- A subdomain such as www.example.com: add a CNAME record at your DNS provider that points to your-project.pages.dev. Add the domain in the dashboard first, or it will show a 522 error.
- The bare domain (example.com): Cloudflare asks you to add the domain as a zone and point your nameservers to Cloudflare, then creates the record for you.
Netlify
- Open your project, then Domain management in the left sidebar, then Add a domain you already own.
- Enter the domain and choose Netlify DNS (recommended), or an external DNS provider.
- External DNS, bare domain: an ALIAS record to apex-loadbalancer.netlify.com, or an A record to 75.2.60.5.
- External DNS, www or a subdomain: a CNAME record to your-site-name.netlify.app.
- DNS changes can take up to 48 hours to spread.
Vercel
- Open your project > Settings > Domains > Add Domain.
- Bare domain: add the A record Vercel shows in your project's Domains settings.
- Subdomain: add the CNAME record Vercel shows for your project.
- Wait until the Domains page shows the domain as configured.
- Which record you add (CNAME, A or ALIAS) and where you add it depends on who runs your domain's DNS. The host's page above is the source for the exact values.
Stuck on a step? Fix it prompts include one for deploy errors. Or we can publish it for you.