Building a Blog That Just Works

I decided to start a blog. I wanted something simple: a static site I control that loads fast and is easy to write for.

The requirements were straightforward. Fast, simple, pleasant workflow. No JavaScript frameworks, no heavyweight CMS. Just markdown files that become HTML pages.

This is what I built.


What I Wanted

The goals were simple:

That's it. No analytics tracking, no comment systems, no newsletter signups. Just fast pages with words on them.


The Stack

I built a custom static site generator in Go. The stack:

The build tool has three commands: build, serve, and new.


How It Works

The build process is straightforward. Parse markdown files with frontmatter, convert to HTML, optimize assets, write everything to a dist/ folder.

Posts are markdown files with frontmatter:

---
title: "My Post Title"
date: 2026-01-31
summary: "A brief description"
draft: false
---

Post content here...

The build pipeline:

  1. Parse posts - Goldmark converts markdown to HTML, extracts frontmatter
  2. Optimize images - Resize to max 1200px width, compress JPEGs at 85% quality
  3. Minify assets - CSS and HTML get minified for production
  4. Generate SEO files - Auto-create sitemap.xml, robots.txt, and feed.xml (RSS)
  5. Render templates - Go templates for the homepage and post pages

Pico CSS handles all the styling with zero custom classes. It's a classless framework, so semantic HTML just works. An <article> becomes a card, a <header> inside it gets a darker background. No class names needed.


The Workflow

Writing a post:

# Create a new post
go run . new "Post Title"

# Edit the generated markdown file in content/posts/

# Start dev server with live reload
go run . serve

# Build for production
go run . build

The dev server watches for file changes and auto-reloads the browser. Edit markdown, save, see the result instantly.

Deployment is just git push. GitHub Actions runs the build and publishes to GitHub Pages. No manual steps, no deployment configuration. Write, commit, push, done.


The Results

The site performs well.

Lighthouse scores: 100/100 across Performance, Accessibility, Best Practices, and SEO.

No JavaScript means no bundle to download, parse, or execute. Pages load quickly, even on slow connections.

Pico CSS adds minimal overhead, and the semantic HTML means good accessibility by default. The auto-generated sitemap and RSS feed handle SEO and discoverability.

It's exactly what I wanted: fast, simple, and it just works.


How I Built It

I used AI-assisted development for this project. Started with Gemini to devise the original plan (tech stack, requirements, big picture architecture). Then Claude with Superpowers for detailed design and planning. Codex handled the implementation.

The workflow: brainstorm with Gemini, plan with Claude, implement with Codex.


Closing

That's the site. No frameworks, no databases, no complexity. Just markdown files that become fast HTML pages.

It's exactly what a dev blog should be: simple, fast, and mine.