Essay
25

Essay · Published Mar 7, 2025

Why I Built a Static Blog

A personal blog should be fast on a phone and boring to host — Markdown to static HTML on Cloudflare, no app server.

A field-guide drawing of a trail backpack, map, and notebook
In this article3 sections

Most people who read this will open it on a phone between other apps. If the page is heavy, they leave. That is the whole product requirement.

What I Run

Markdown files, a small generator (TypeScript, Nunjucks templates, PostCSS), static HTML out the other side. Hosting is Cloudflare. No Node process sitting around waiting for requests.

I used Claude Code heavily while building the pipeline. The stack choice was still mine: I wanted deploy to be “push and forget,” not “hope the server is up.”

The dependency list is boring on purpose — parse frontmatter, render Markdown, highlight code, ship CSS. If a library does not earn its install, it does not stay.

Deploy

Write a post, push to git, CI builds the site, Cloudflare serves the files from the edge. Readers get HTML from a nearby PoP. I do not SSH in to restart anything when traffic spikes, because there is nothing to restart.

What I Skipped

No Next.js for the blog. I have paid that tax on app work — routing frameworks, serverless cold starts, EMFILE limits on hobby plans. A blog does not need that surface area.

beconfused.com and yorksf.com run the same idea. Same monorepo patterns, same edge host. More on the hosting path in static blog on Cloudflare.

One quick signal

Did this earn your time?

What was missing?

Thanks. That gives me something concrete to check.