Best Free Static Site Hosting with Custom Domain Support: 9 Top Platforms Compared

Netlify, Vercel, Cloudflare Pages, and Render provide the most robust free static site hosting with custom domain support, offering automatic SSL provisioning, global CDN distribution, and Git-based continuous deployment without requiring a credit card.

The ripienaar/free-for-dev repository curates a comprehensive list of developer tools that offer generous free tiers, including multiple static site hosting services that support custom domains. Whether you are deploying a personal portfolio, documentation site, or Jekyll blog, these platforms eliminate infrastructure costs while providing production-grade features like HTTPS, edge caching, and automated builds.

Why Custom Domain Support Matters for Static Sites

Using a custom domain instead of a subdomain (like username.github.io) establishes brand credibility and improves SEO rankings. The best free static site hosting providers automate the entire custom domain workflow: you add your domain in their dashboard, update a DNS record (CNAME or A/ALIAS), and the platform automatically provisions and renews SSL certificates via Let’s Encrypt. This eliminates manual certificate management and ensures your site always serves over HTTPS.

Top Free Static Site Hosting Platforms with Custom Domains

Netlify

Netlify offers the most mature ecosystem for free static site hosting with custom domain support. The free tier includes 300 build minutes and 30 GB bandwidth per month, instant global CDN distribution, and integrated serverless functions.

According to the free-for-dev source code analysis, Netlify pulls source from a Git repository, runs a build step if configured, stores the output on an edge network, and serves it through a CDN. When you add a custom domain in the Netlify UI, the platform provisions DNS records and automatically issues SSL certificates via Let’s Encrypt. You can use Netlify DNS or point external DNS records to Netlify’s load balancers.

Vercel

Vercel specializes in frontend frameworks and provides unlimited static builds on its free tier, along with a global edge network and preview URLs for every Git push. The platform supports custom domains with automatic SSL verification.

As implemented in the ripienaar/free-for-dev documentation, Vercel creates immutable deployment snapshots from Git commits. Static assets are uploaded to Vercel’s edge network, and each request is routed to the nearest edge location. To connect a custom domain, you verify ownership via a DNS TXT record, and Vercel automatically provisions a free TLS certificate. The platform also supports serverless API routes alongside static hosting.

Cloudflare Pages

Cloudflare Pages integrates deeply with the Cloudflare ecosystem, offering 500 monthly builds, support for 100 custom domains, and unlimited bandwidth on the free tier. The service works seamlessly with Cloudflare Workers for dynamic functionality.

The architecture documented in free-for-dev shows that Cloudflare Pages builds sites in a CI environment, stores static files on Cloudflare’s edge KV storage, and serves them via the Cloudflare CDN. You add custom domains through the Pages dashboard; if using Cloudflare DNS, the process is instantaneous, and SSL certificates are provisioned automatically. External DNS providers work equally well with CNAME records pointing to Cloudflare.

Render (Static Sites)

Render provides a free static site plan that includes free SSL, global CDN, and auto-deploy from Git. The platform supports custom domains with automated DNS and certificate management.

According to the source analysis, Render pulls your repository, runs any specified build command, uploads the resulting static files to its CDN, and serves them from edge locations. When you add a custom domain in the Render dashboard, you verify ownership via CNAME or TXT records, and Render automatically handles TLS certificate issuance and renewal.

Surge.sh

Surge.sh offers a minimalist approach with unlimited sites, a simple CLI workflow, and free custom domain support requiring only a CNAME record. Unlike Git-integrated platforms, Surge functions as a static file uploader without a build pipeline.

The free-for-dev documentation notes that Surge stores files on its CDN. To deploy, you run surge ./dist yoursite.surge.sh. For custom domains, you publish to surge ./dist mycustomdomain.com and configure a CNAME record pointing to surge.sh. The platform auto-generates free SSL certificates once the DNS propagates.

Kinsta Static Site Hosting

Kinsta offers static site hosting with support for up to 100 static sites, 100 GB monthly bandwidth, and 260+ CDN locations via Cloudflare integration. The free tier supports custom domains with automatic SSL.

As listed in the repository, Kinsta requires you to supply the build output (unlike Git-integrated CI builds). The platform caches files on Cloudflare’s CDN. You manage DNS through Kinsta’s panel, and SSL certificates are auto-installed via Let’s Encrypt.

GitHub Pages and Codeberg Pages

GitHub Pages provides unlimited public repositories with static site hosting, built-in Jekyll support, and custom domain functionality via a CNAME file. Codeberg Pages offers a similar open-source alternative.

According to the free-for-dev source, these platforms serve the gh-pages branch (or equivalent) via a global CDN. To use a custom domain, you create a CNAME file in the repository root containing your domain name, then configure a CNAME DNS record pointing to the provider’s domain. SSL is provided automatically via Cloudflare or Let’s Encrypt.

Neocities

Neocities offers a nostalgic yet functional platform with 1 GB storage, 200 GB bandwidth, and support for custom domains via CNAME or TXT records. The free tier supports static files only.

The repository documentation indicates that Neocities stores files on a CDN. To configure a custom domain, you add a CNAME record pointing to neocities.org, and the platform auto-issues SSL certificates via Let’s Encrypt.

How to Deploy: Configuration Examples

Netlify Configuration

Create a netlify.toml file in your repository root to define build settings and redirects:


# netlify.toml

[build]
  command = "npm run build"
  publish = "dist"

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

Deploy using the Netlify CLI:

npm install -g netlify-cli
netlify deploy --prod

Add your custom domain in the Netlify dashboard under Domain Settings → Add custom domain. Netlify provides the required DNS records and automatically provisions a TLS certificate.

Vercel Configuration

For projects requiring specific build configurations, create a vercel.json file:

{
  "builds": [
    { "src": "public/**/*", "use": "@vercel/static" }
  ],
  "routes": [
    { "src": "/(.*)", "dest": "/$1", "continue": true }
  ]
}

Deploy via the Vercel CLI:

npm i -g vercel
vercel --prod

In the Vercel dashboard, click Add → Domain, enter your domain, and follow the DNS verification steps. Vercel automatically provisions a free SSL certificate once verification completes.

Cloudflare Pages Configuration

While Cloudflare Pages primarily uses dashboard configuration, you can include a pages.config.json for advanced settings:

{
  "name": "my-static-site",
  "build": {
    "command": "npm run build",
    "directory": "dist"
  },
  "routes": [
    { "pattern": "/*", "value": "/index.html" }
  ]
}

Connect your Git repository in the Cloudflare Pages dashboard. Under Custom Domains, add your domain and update your DNS to point to Cloudflare’s nameservers. Cloudflare automatically provisions SSL certificates.

Surge.sh Deployment

For rapid deployment without Git integration, use the Surge CLI:

npm install -g surge
surge ./dist yoursite.surge.sh

To deploy with a custom domain:

surge ./dist mycustomdomain.com

Add a CNAME record pointing mycustomdomain.com to surge.sh. Surge automatically generates a free SSL certificate once DNS propagates.

Key Files in the free-for-dev Repository

The ripienaar/free-for-dev repository itself demonstrates static site hosting patterns. These files provide practical references for your own deployments:

File Purpose Link
README.md Master list of free services including the static-site hosting section README.md#web-hosting
.github/PULL_REQUEST_TEMPLATE.md Template for contributors proposing new hosting options .github/PULL_REQUEST_TEMPLATE.md
index.html Example static page rendered by GitHub Pages for this repo index.html
CNAME Demonstrates custom domain configuration for GitHub Pages CNAME

These files illustrate how the repository leverages GitHub Pages with a custom domain, serving as a real-world implementation of the hosting options documented in the list.

Summary

  • Netlify, Vercel, Cloudflare Pages, and Render provide the most comprehensive free tiers for static site hosting with custom domain support, including automatic SSL and global CDN distribution.
  • Git-based deployment is supported by Netlify, Vercel, Cloudflare Pages, and Render, enabling continuous deployment without manual file uploads.
  • Surge.sh and Neocities offer simpler alternatives for basic static sites, with Surge providing unlimited sites via CLI and Neocities offering 1 GB storage with 200 GB bandwidth.
  • SSL certificates are automatically provisioned via Let’s Encrypt or Cloudflare on all listed platforms once you verify domain ownership through DNS records.
  • The ripienaar/free-for-dev repository itself uses GitHub Pages with a custom domain, demonstrating the practical implementation of these hosting patterns.

Frequently Asked Questions

What is the best free static site hosting with custom domain for beginners?

Netlify is the most beginner-friendly option because it provides a drag-and-drop deployment interface, automatic DNS configuration, and instant SSL provisioning without requiring command-line tools. The platform’s netlify.toml configuration file is straightforward, and the generous free tier of 300 build minutes per month accommodates most personal projects and portfolios.

Does free static site hosting with custom domain include SSL certificates?

Yes, all major platforms including Netlify, Vercel, Cloudflare Pages, and Render automatically provision and renew SSL certificates via Let’s Encrypt or Cloudflare’s certificate authority once you verify domain ownership. This process requires no manual certificate generation or renewal scripts; you simply add your domain in the platform’s dashboard, configure the required DNS records (CNAME or A/ALIAS), and HTTPS is enabled automatically within minutes.

How do I connect a custom domain to GitHub Pages?

To use a custom domain with GitHub Pages, create a file named CNAME in the root of your repository containing only your domain name (e.g., www.example.com). Push this file to your gh-pages branch or repository root, then configure a CNAME record in your DNS provider pointing your domain to username.github.io (for user sites) or the specific GitHub Pages URL. GitHub automatically provisions an SSL certificate through Let’s Encrypt once the DNS propagates.

Are there bandwidth limits on free static site hosting tiers?

Bandwidth limits vary by provider: Netlify offers 30 GB per month on the free tier, while Cloudflare Pages and Vercel provide effectively unlimited bandwidth for static assets through their global CDNs. Neocities limits free tiers to 200 GB monthly bandwidth, and Kinsta offers 100 GB per month for static sites. For high-traffic sites, Cloudflare Pages and Vercel provide the most generous transfer limits without requiring payment.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →