Hugo

Getting a Hugo site running locally in 20 minutes

September 1, 2026 · 2 min read

Hugo is one of those tools that gets out of your way fast — once you understand the moving parts. Here’s the shortest path I know from a blank directory to a working static site.

Install

On macOS with Homebrew:

brew install hugo
hugo version

If you have a Go toolchain, go install github.com/gohugoio/hugo@latest also works. Either way, you should see a version string that starts with hugo v.

Scaffold

Pick an empty directory and let Hugo generate the layout:

mkdir my-site && cd my-site
hugo new site . --force

The --force flag is needed when the directory isn’t completely empty. The result is a small tree of archetypes, content, layouts, themes, and a hugo.toml config file.

Add a theme

You can write your own theme — and for a personal blog, you probably should. Hugo themes are just a directory under themes/ with a theme.toml and a layouts/ tree. The minimum theme needs:

Then point Hugo at it in hugo.toml:

theme = "your-theme-name"

Write content

Each post is a markdown file with front matter:

+++
date = 2026-09-01
title = "My first post"
summary = "A short description for the post card."
tags = ["Meta"]
+++

Body content goes here. Standard markdown.

Build

hugo              # writes static files to public/
hugo server       # local dev server with live reload

That’s the whole loop. From here, every decision is an iteration, not an architecture choice.

← Back to all posts