Free hosting exists. A free shop does not.

You can put a website on the public internet without paying monthly rent. That sentence is true, and it is the sentence most listicles stop at.

The next sentence is the one that matters. Free hosting is almost always free static hosting: HTML, CSS, JavaScript and images, served from a CDN. It is not a free computer that runs your shop, your login system, or a database that has to stay awake. Several of the platforms below will also run a server for you on a free tier. Those free servers come with documented sleep, hour caps, and rules about what the site is allowed to be.

This page is not a ranking. I am not going to invent a top ten. I checked the official documentation for five hosts that actually offer a $0 plan for a public site, on 20 August 2026. Where a number is not on that page, I will say so. BRYME itself is a static site on Render. The messy part of that deploy is already written up separately.

Ask this before you pick a host

Is the site a folder of files, or a program that has to keep running?

A portfolio, a documentation site, a blog built as HTML, this site — those are files. GitHub Pages, Cloudflare Pages and a Render static site are built for that.

A Node or Python app that answers requests, talks to a database, or keeps a session — that is a web service. Render's free web service, Vercel's functions, Netlify's compute all exist. They are a different product. Mixing them up is how people end up with a site that works on their laptop and sleeps, or refuses to crawl, in production.

If you only have HTML files, pick a static host. Do not open a free web service because a tutorial used one.

GitHub Pages

GitHub Pages takes HTML, CSS and JavaScript from a repository and publishes a website. Official docs: it is available on public repositories with GitHub Free. A user or organisation gets one account site at owner.github.io. Every other repository can have one project site at owner.github.io/repo-name. You can point a custom domain at it.

The limits that are actually written down: recommended source repo size 1 GB, published site no larger than 1 GB, deploys time out after 10 minutes, a soft bandwidth limit of 100 GB per month, a soft limit of 10 builds per hour unless you publish with a custom GitHub Actions workflow. Exceed those and GitHub says it may stop serving the site, or email you to put a CDN in front or move.

Two rules people skip. GitHub Pages is not allowed as free hosting for an online business, an e-commerce site, or a site whose main job is commercial transactions or commercial SaaS. And it should not be used for sensitive transactions such as passwords or card numbers. That is on the official limits page, not a blog warning.

Use it if the site is public, static, and personal or project documentation. Do not use it as a store.

Cloudflare Pages

Cloudflare Pages builds from Git and serves the files on Cloudflare's network. On the Free plan the official limits page, last updated 16 July 2026, is specific: one build at a time, 500 builds per month, builds time out after 20 minutes, up to 20,000 files per site, 25 MiB per file, 100 custom domains per project, 100 projects per account. Preview deployments are unlimited. New accounts can be blocked from creating more projects in the first 48 hours as an abuse control.

Cloudflare's Pages docs do not publish a hard monthly bandwidth number for ordinary site files. I am not going to invent one. If you need a number, open their current plans page rather than a comparison blog.

Use it if you already think in Git pushes and you want a CDN without paying first. Watch the file count if the site is an image dump. A single file over 25 MiB will not go up.

Render — static site versus free web service

Render is two different free products, and tutorials flatten them into one.

A static site is free to deploy. Official static-site docs: global CDN, automatic deploys from Git, an onrender.com URL, custom domains, managed TLS, pull-request previews, HTTP to HTTPS redirects. Hobby workspaces include two custom domains; extras are billed. Static sites do not have instance types, so they do not spin down. They do count against the workspace's monthly included outbound bandwidth and pipeline minutes. The exact included amounts live on the Billing page in the dashboard. I am not copying a third-party GB figure onto this page.

A Free web service is the other product. Render's own free-tier page says do not use Free instances for production applications. A Free web service spins down after 15 minutes without inbound traffic. The next request takes about a minute to wake it. Local files are lost on redeploy, restart or spin-down. Each workspace gets 750 Free instance hours per calendar month; use them up and every Free web service is suspended until next month. Free Postgres expires 30 days after creation.

The detail that still does not appear in most tutorials: while a Free web service is spun down, requests to /robots.txt get a disallow-all response and never wake the service. A quiet site can spend most of the day telling crawlers not to look. That is documented. I wrote out what it did to my own deploys in the Render failures piece.

BRYME is a static site on Render, not a Free web service. That distinction is why this site does not sleep.

Vercel Hobby

Vercel's Hobby plan is free and aimed at personal projects. Official included usage includes the first 1,000,000 function invocations, 4 CPU-hours, 360 GB-hours of provisioned memory, 200 projects, 100 deployments per day, 50 domains per project. Fair-use guidelines list typical Hobby transfer around 100 GB Fast Data Transfer. If you exceed Hobby limits, Vercel says you usually wait 30 days before that feature works again.

The line that decides whether you can use it at all is commercial use. Hobby teams are restricted to non-commercial personal use. Official examples of commercial use: requesting payment from visitors, advertising a product or service, being paid to create or host the site, affiliate linking as the primary purpose, and including advertisements such as Google AdSense. Asking for donations is not commercial. If BRYME ran ads on a Vercel Hobby project, that would be the ads case. I am not going to pretend otherwise.

Use Hobby for a personal experiment. If the site is how you earn, Vercel wants Pro or Enterprise. That is their rule, not a vibe.

Netlify free credits

New Netlify accounts use credit-based plans. Official docs: the Free plan is $0 a month, 300 credits a month, with a hard limit and no option to buy more. Unused credits do not roll over on Free. Sites pause when the credits run out; you wait for the next cycle or you upgrade.

How those 300 credits get spent is also documented. A production deploy costs 15 credits. Bandwidth costs 20 credits per GB. Web requests cost 2 credits per 10,000. Deploy previews and branch deploys cost 0 credits. Forms submissions are free on credit plans.

Do the arithmetic once so the 300 does not feel abstract. Twenty production deploys in a month would spend the whole allotment on deploys alone. Fifteen gigabytes of bandwidth would do the same. A busy month of both will pause the site. That is not a scare story. It is 300 divided by the rates they published.

Use Netlify if you want Git deploys and preview URLs and you will actually watch the credit balance. Do not treat 300 as infinity.

How I would choose, labelled as opinion

If the site is a folder of HTML and I already have a GitHub repo, I would start on GitHub Pages or Cloudflare Pages. Pages is the fewest moving parts. Cloudflare is the one I would pick if I expected more files or wanted their network in front from day one.

If I already live in Render — which I do — I would keep a static site there and refuse to open a Free web service for a site that is only files. That is how this site is hosted.

If I was building a Next.js app for myself and not charging anyone, Vercel Hobby is the path the framework expects. If I was charging, I would not put it on Hobby.

If I wanted preview deploys for every pull request and I was willing to count credits, Netlify.

I have not run a production month on Cloudflare Pages or Netlify's new credit plan. I am not going to invent field notes for those. The Render specifics above are from their docs plus deploys I actually did.

What free will not do

It will not give you a custom domain. The domain is a separate purchase. Most of these hosts will attach one you already own; they will not buy it for you.

It will not keep a database alive forever. Render's free Postgres expires in 30 days. That is written down.

It will not make a store. GitHub Pages forbids commercial transaction sites. Vercel Hobby forbids commercial use. Other hosts may allow a shop on a paid plan. Free is the wrong product.

It will not protect you from your own traffic. Bandwidth and credits run out. When they run out, the documented result is a pause, a bill, or an email asking you to move — depending on the host and whether a card is on file.

And it will not stay the same. Two of these pricing pages have moved in the last year. Open the source links before you commit a project to a plan you read about in a screenshot.