Loading...

How to Deploy a Website for Free (and When "Free" Runs Out)

Servers in a data centre

If you've built a site — hand-coded, or generated with an AI tool and exported as files — the last mile is getting it onto the internet at a real URL. The good news is that for a huge range of sites, hosting genuinely costs nothing, and I don't mean a trial. I mean production-grade hosting on the same infrastructure that serves large companies, on a free tier that a personal site may never outgrow.

The catch is that "free" has an edge, and the platforms are careful not to make that edge obvious until you hit it. I've deployed plenty of sites across all four of the platforms below, so here's how to pick one, how the deploy actually works, and — the part most guides dodge — exactly when you'll need to reach for your wallet.

First: is your site static or dynamic?

This one distinction decides everything else, so get it straight before you choose a host.

A static site is a set of prebuilt files — HTML, CSS, JavaScript, images. The server just hands the same files to every visitor. Portfolios, landing pages, blogs, documentation, marketing sites, and most AI-generated sites are static. Static hosting is what's abundantly, genuinely free.

A dynamic site does work on a server for each request — running code, reading and writing a database, handling logins. A store with real accounts, a dashboard, anything with a backend. Dynamic hosting is still often free to start, but it's where free tiers have the tightest limits, because someone has to pay for that compute.

Most people reading a "deploy for free" guide have a static site and don't realize how far that alone will take them. If that's you, all four platforms below will serve you well.

The four platforms, and what each is best at

All four deploy straight from a GitHub/GitLab repository (push code, it auto-builds and goes live), and all four also accept a simple drag-and-drop folder upload for a first deploy. All four include free HTTPS. Here's how they differ.

GitHub Pages is the simplest possible option if your code already lives on GitHub. It serves static files directly from a repository — ideal for a portfolio, a project's documentation, or a personal blog. It's static-only (no server-side code), and it has a soft bandwidth allowance often cited around 100 GB per month and a repository size limit around 1 GB (could vary). For a modest personal site you'll likely never notice a ceiling.

Netlify is the one I most often recommend for a static site that needs a little more — form handling, deploy previews, redirects, and lightweight serverless functions. The free tier commonly includes around 100 GB bandwidth and roughly 300 build minutes per month (could vary). The developer experience is excellent and the free tier is generous enough for most personal and small-project use.

Vercel is the strongest choice if you're using Next.js or a modern React framework — it's made by the same team and the integration is seamless. Its free "Hobby" tier is capable, with a bandwidth allowance in a similar range (could vary). One critical catch: Vercel's Hobby tier is for non-commercial, personal use — commercial projects are expected to be on a paid plan (could vary). If you're deploying something that makes money, read that rule before you rely on it, because it's the free-tier limit most likely to actually apply to you.

Cloudflare Pages has the most generous free tier of the group, and it's my pick when you expect real traffic. The static side advertises unmetered bandwidth and requests — meaning a traffic spike won't hand you a surprise — with a build allowance often cited around 500 builds per month (could vary). If a post might go viral, this is the one that won't punish you for it.

Deploying, start to finish

For a static site, the fastest possible path is genuinely under a minute:

  1. Have your site's files in a folder (with an index.html) or in a GitHub repository.
  2. Sign up for one of the four platforms (free).
  3. Either drag the folder onto the platform's deploy area, or connect your repository so it builds automatically on every push.
  4. You get a live URL immediately — something like your-site.netlify.app or your-site.pages.dev.

Connecting a repository is worth the tiny bit of extra setup, because after that, every time you push a change, the site rebuilds and redeploys itself. You edit, you push, it's live. That loop is the actual magic of these platforms.

Adding a custom domain

The free subdomain is fine for testing, but a real site wants a real name. The domain name itself is the one thing that isn't free — you buy it from a registrar for roughly $10–15 a year for a common extension, though prices vary by registrar and by the domain ending you choose (could vary).

Connecting it is free and the same idea on every platform: add your domain in the host's dashboard, then update your domain's DNS records at your registrar to point at the host. Each platform gives you the exact records to copy and paste, and each then issues a free HTTPS certificate automatically, so your custom domain loads securely with no extra work. The only annoyance is DNS propagation — the change can take anywhere from minutes to a day to fully take effect.

When "free" actually runs out

Here's the honest part. Free hosting stops being free at a few specific, predictable moments:

  • You exceed the bandwidth or build allowance. A genuinely popular static site can blow past a monthly bandwidth cap; heavy or frequent builds can exhaust build minutes. This is where Cloudflare Pages' unmetered static bandwidth is a real advantage.
  • Your project is commercial and the tier forbids it. The clearest example is Vercel's Hobby tier being non-commercial — the moment your side project starts earning, you're expected to upgrade (could vary).
  • You need a real backend or database. Static hosting is free and abundant; server-side compute is where costs appear. Serverless functions on these platforms have free invocation limits, and cold starts and execution caps become real constraints as you grow. You'll typically pair the site with a separate database that has its own free tier — options like Supabase, Neon, or Turso all offer one (could vary).
  • You want team features, more analytics, or higher limits. Password protection, more seats, longer log retention, and higher usage ceilings live on paid plans.

Paid plans on these platforms commonly start around $20 per month per member for the first serious tier (could vary). The realistic path for most people: start free, stay free for a long time, and only upgrade when a specific limit above actually bites — not preemptively.

The honest recommendation

For a static site — a portfolio, a blog, a landing page, docs, or something you generated with an AI tool and exported — pick GitHub Pages if it already lives on GitHub and you want dead-simple, Netlify if you want the smoothest experience with room to add forms and functions, Cloudflare Pages if you expect real traffic and want unmetered bandwidth, and Vercel if you're building on Next.js and your project is genuinely non-commercial. Any of the four will host a personal site for free, likely for as long as it exists.

The mental model that keeps you out of trouble: static is where free is nearly unlimited; dynamic is where the meter starts. Build as much of your site as you reasonably can as static files, add server-side pieces only where you truly need them, and you'll stay on the free side of that line far longer than you'd expect.

Post a Comment

emo-but-icon

Home item

Google

ADS

Popular Posts

Labels

Random Posts

infolinks