Static Sites Guide

Build a blog with static site generators

Hugo, Astro, and 11ty. Maximum speed, total control, free hosting. The developer's path to blogging.

This guide assumes you're comfortable with a terminal, a code editor, and version control (git). If that sounds intimidating, check out our simpler platform guides instead.

Why static sites?

Static site generators transform your markdown files into plain HTML. No database, no server-side code, no security vulnerabilities. Your blog is just files.

The result: your pages load in milliseconds, hosting is free (Vercel, Netlify, Cloudflare Pages all have generous free tiers), and your content lives in a git repo that you fully control.

The trade-off: there's no admin panel or visual editor. You write in markdown, build locally, and deploy via git push. For developers, this is a feature, not a bug.

Blazing fast

Static HTML = no server processing. Your blog loads in under a second, every time.

Free to host

Vercel, Netlify, and Cloudflare Pages all offer free hosting for static sites. You only pay for a domain.

Version controlled

Your content lives in git. Every post, every change, fully tracked and reversible.

Pick Your Tool

Choose your generator

Hugo Setup

From zero to published blog

1

Install Hugo

Terminal

# macOS
brew install hugo

# Windows
choco install hugo-extended

# Linux
sudo apt install hugo
2

Create your blog

Terminal

hugo new site my-blog
cd my-blog
3

Add a theme

Terminal

git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
echo "theme = 'ananke'" >> hugo.toml

PaperMod and Congo are also excellent minimal blog themes worth exploring.

4

Create your first post

Terminal

hugo new content posts/hello-world.md

Edit the generated file. Set draft: false in the frontmatter when you're ready to publish, then write your content in markdown below the frontmatter block.

5

Preview locally

Terminal

hugo server -D
# Visit http://localhost:1313
6

Deploy

Push your project to GitHub, then connect it to Netlify, Vercel, or Cloudflare Pages.

Build command

hugo

Publish directory

public

RSS: Built in

Hugo generates an RSS feed automatically at /index.xml. No configuration needed.

Free Hosting

Deploy for free

All three platforms offer free static site hosting with SSL, custom domains, and automatic deploys from git. Push to your repo and your blog updates in seconds.

Vercel

Great developer experience, instant previews for pull requests, excellent for Astro and Next.js projects.

Netlify

Pioneer of the JAMstack space, solid support for Hugo and 11ty, generous free tier with forms and functions.

Cloudflare Pages

Fastest global CDN, unlimited bandwidth on the free tier, built-in analytics and DDoS protection.

What it costs

Domain

$10-15/year

Your .com or .blog address

Hosting

Free

Vercel / Netlify / Cloudflare Pages

Theme

Free

Most SSG themes are open source

Total

~$10-15/year

Just the domain name

Static site blogs are the cheapest way to run a professional blog. Your only recurring cost is the domain name.

Tips for Success

Make the most of it

1

Set up a writing workflow

Some people use a dedicated branch per post, others commit straight to main. Pick whatever keeps you writing.

2

Use frontmatter consistently

Title, date, tags, description. Consistent frontmatter makes filtering and organizing easier as your blog grows.

3

Set up RSS from day one

Your readers will thank you. Our RSS guide covers the details for every platform.

4

Consider a CMS layer

Decap CMS (formerly Netlify CMS) or Tina give you a visual editor without giving up static hosting. Worth exploring if you want a friendlier writing experience.

5

Write a few posts before you share

Having 3-5 posts when you launch gives readers a reason to subscribe and come back.

Not ready for the command line? Ghost offers a similar focus on speed and clean design with a visual editor.