Back to the blog

Deploying your first site for free: Vercel, Netlify, Cloudflare Pages, or GitHub Pages

Code5 min read · 27 September 2026

The GetPack team

You’ve got a project running on your machine, and you want to show it to someone other than yourself. Good news: putting a site online for free has never been easier, as long as you understand what each host actually means by “free.” Here’s a comparison of four options students run into constantly, with the numbers and conditions checked against their official pages.

What’s actually free, and under what conditions

Vercel (Hobby plan)

Vercel’s Hobby plan is free and includes, per month, 100 GB of data transfer, 1 million edge requests, 1 million function invocations, 4 hours of active CPU, up to 200 projects, and 100 deployments a day. The detail not to miss: according to the official documentation, “the Hobby plan restricts users to non-commercial, personal use only.” That’s not just marketing language: if you go over your usage limits, you generally have to wait 30 days before you can use that feature again, and you can’t buy extra usage on this plan. Commercial use requires upgrading to Pro ($20 per user per month).

Netlify

Netlify’s free plan is advertised as “$0 forever,” with a monthly cap of 300 credits. Those credits get spent across several meters at once: production deploys, function compute time, bandwidth, web requests, and, more recently, AI inference. It’s a hard cap: once you hit it, you wait until next month. In exchange, the free plan includes “unlimited deploy previews,” handy for testing a branch before merging it.

Cloudflare Pages

Cloudflare draws a sharp line between two use cases. For a purely static site (compiled HTML, CSS, JS), hosting is unmetered for both bandwidth and request count: nothing to watch there. What is limited is builds (500 a month), files per deployment (20,000 files, 25 MiB per file max), and projects per account (100, with up to 100 custom domains per project). If your site uses Pages Functions (code that runs on demand), those calls count against Cloudflare Workers’ free plan, capped at 100,000 requests a day.

GitHub Pages

GitHub Pages is free, but built for personal sites, blogs, documentation, or student projects, not commercial activity: the official documentation states the service “is not intended for or allowed to be used as a free web-hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions.” On the technical side: the source repository and the published site each have a recommended limit of 1 GB, bandwidth has a soft limit of 100 GB a month, and site builds are soft-limited to 10 per hour (unless you publish through your own GitHub Actions workflow).

Deploying from GitHub: the broad strokes

For Vercel, Netlify, and Cloudflare Pages, the process is nearly identical: connect your GitHub account, pick the repository to import, let the platform auto-detect your framework (or specify the build command and output directory yourself), and confirm. From there, every git push to the connected branch triggers a new automatic deployment, and other branches or pull requests get their own separate preview you can check before merging.

GitHub Pages works differently: either you publish the content of a branch or folder directly (/docs, for instance), or you write your own GitHub Actions workflow that builds the site and then publishes it. It takes a bit more setup upfront, but it’s still entirely free and gives you full control over the build steps.

Environment variables: where to hide them

An environment variable stores a sensitive or context-dependent value (an API key, a database URL) without writing it in plain text in your code, and therefore never in your Git repository. Each platform has its own place to declare them:

  • Vercel: in the project settings, under “Environment Variables.”
  • Netlify: “Project configuration > Environment variables” in the UI, with the option to import directly from a .env file.
  • Cloudflare Pages: in the Workers & Pages dashboard, on your project, under “Settings > Environment variables” (or through the Wrangler command-line tool).
  • GitHub Pages: has no environment variables in the traditional sense, since it’s static file hosting with no server-side code execution. If you build your site through GitHub Actions before publishing it, sensitive values instead go into the GitHub repository’s “secrets,” used during the build workflow.

Custom domain names

All four platforms accept a domain name you bought elsewhere (from any registrar), on top of the free address they provide by default. On GitHub Pages, the process is well documented: you enter your domain in the repository settings (which creates a CNAME file at the root), then add an ALIAS, ANAME, or A record with your DNS provider (and optionally AAAA for IPv6). The official documentation recommends verifying your domain before adding it to the repository, to reduce the risk of someone else claiming it if you ever stopped using it. On Vercel and Cloudflare Pages, adding a domain happens directly from the project dashboard, with a custom-domain allowance that’s generous enough for a student site (up to 50 per project on Vercel’s Hobby plan, up to 100 on Cloudflare Pages).

Which one to pick

There’s no universal answer, only use cases. A fully static site (portfolio, documentation, project page) published from a GitHub repository you already manage: GitHub Pages does the job with no surprises. A project built with a modern framework (Astro, Next.js, Vite…) where you want automatic previews on every pull request: Vercel or Netlify are built for exactly that, keeping in mind that Vercel’s free tier is explicitly reserved for non-commercial, personal use. A mostly static site that might need occasional serverless functions later, with static bandwidth that isn’t metered: Cloudflare Pages holds up well. Either way, for a student or personal project, all four free tiers are more than enough: the real deciding factor is which tool you’re most comfortable configuring.

Key takeaways

  • Vercel Hobby: generous quotas, but explicitly reserved for personal, non-commercial use; going over a limit means a pause of up to 30 days.
  • Netlify: free “forever,” with a hard cap of 300 credits a month shared across several meters (bandwidth, compute, deploys, requests, AI).
  • Cloudflare Pages: unmetered bandwidth and requests for a static site; limits apply to builds (500/month) and files (20,000/deployment).
  • GitHub Pages: free but explicitly not meant for commercial activity; 1 GB recommended per site, 100 GB/month bandwidth as a soft limit.
  • Deploying from GitHub: import plus auto-detection on the first three; a branch or an Actions workflow for GitHub Pages.
  • Environment variables: a dedicated spot in each project’s settings, never committed into the code.
  • Custom domain: managed from the dashboard on the first three; a CNAME file plus a DNS record on GitHub Pages, verified before adding.

Sources

  1. Vercel Hobby Plan — Vercel Docs · accessed 27 September 2026
  2. Pricing and Plans — Netlify · accessed 27 September 2026
  3. Limits — Cloudflare Pages docs · accessed 27 September 2026
  4. GitHub Pages limits — GitHub Docs · accessed 27 September 2026
  5. About custom domains and GitHub Pages — GitHub Docs · accessed 27 September 2026
  6. Environment variables overview — Netlify Docs · accessed 27 September 2026

Read the next article

Explainer27 September 2026

AI detectors: are Turnitin, GPTZero and Compilatio reliable?

Code27 September 2026

Writing your own Claude skill: structure, SKILL.md, and a description that triggers

Career27 September 2026

France's national student-entrepreneur status (SNEE) and the PEPITE network, explained

Analysis27 September 2026

France in the AI race: Mistral, energy and talent

AI news27 September 2026

French Tech and AI: the French startups to know in 2026

Code27 September 2026

Git without fear: commit, branch, remote explained, then the commands that save you

Explainer27 September 2026

Chinese AI: DeepSeek, Qwen, Kimi… why Europe is wary

Health27 September 2026

AI in medical school: study for PASS, LAS and the EDN safely

Tools27 September 2026

Free AI for students: every offer and discount (2026)

Career27 September 2026

AI on an internship or apprenticeship: what’s allowed, what isn’t

Code27 September 2026

From IDE to ADE: coding with AI agents in 2026

Code27 September 2026

Reading an error without panicking: the anatomy of a stack trace (Python and JavaScript)

Tools27 September 2026

Best AI for students in 2026: the honest comparison

Tools27 September 2026

New AI models in 2026: which one should you study with?

Tools27 September 2026

French AI tools you’ve never heard of: Noota, Moshi, Vibe…

Analysis27 September 2026

Why AI is so expensive (and American AI even more so)

Code27 September 2026

How to prompt an AI coding tool well: the method that changes everything

Code27 September 2026

Securing a vibe-coded app: 7 mistakes to fix before you publish

Code27 September 2026

Slopsquatting: when AI recommends packages that don't exist

Weekly brief27 September 2026

AI news roundup: the week of September 21–27, 2026

Code27 September 2026

Vibe coding: what it actually means (and how not to mess it up)

AI news27 September 2026

Why Yann LeCun wants AMI: AI beyond LLMs

Tutorial26 September 2026

Connect an MCP connector to Claude without writing a line of code

Degrees26 September 2026

Choosing your program with real MonMaster and InserSup data

Method26 September 2026

APA 7, ISO 690, Vancouver: how to cite your sources properly

Explainer26 September 2026

ChatGPT's 'hidden codes' on TikTok: fact vs. fiction

Health26 September 2026

Medicine: revise for the EDN with France's public drug database

Career26 September 2026

Internship pay and apprentice wages in 2026: the rules

Explainer26 September 2026

AI and academic integrity: what universities actually say

Tutorial26 September 2026

Installing a skill in Claude in 2 minutes

Thesis26 September 2026

Thesis: building your research question and outline with AI

Method26 September 2026

Building your exam study schedule with AI, the right way

Method26 September 2026

Revising with AI, honestly: active recall, Feynman, quizzes

Career26 September 2026

Choosing your apprenticeship with real employment data

Code27 September 2026

Learning to code in the age of AI: what you still need to know how to do yourself

Code27 September 2026

The one-page spec to write before you prompt an AI to code

Thesis27 September 2026

How to cite ChatGPT or Claude in a thesis: APA, MLA, ISO 690

Code27 September 2026

Claude Code for beginners: install, first launch, CLAUDE.md

AI news27 September 2026

Claude Opus 5.5: what really changes (and how to use it to study)

Analysis27 September 2026

The AI race: why some people are scared and others aren't

Code27 September 2026

Building your first MCP server, step by step

Join GetPack

Already have an account? Sign in