← Projects

slimy

Personal website and blog, built with a custom Go static site generator.

A static site generator written in Go — one external dependency, no build pipeline, no lock-in.

The builder walks data/blog/{lang}/ and data/projects/, parses a custom frontmatter format (40 lines of strings.Cut, no library), converts Markdown to HTML via Goldmark, and renders everything through Go's html/template into public/. Each page gets its own index.html for clean URLs without server-side routing.

Multi-language support is structural: languages are discovered from the directory layout, not configured anywhere. Posts link to their translations via a translation field in frontmatter. Category pages are generated automatically from the same field.

The CSS uses system fonts and ships no external requests — no CDN, no tracking, no third-party anything. The only JavaScript is a theme toggle and a copy button for code blocks, written inline.

The alternative was a framework that would own the build pipeline, require Node, and make upgrading a project in itself. Instead, the entire builder is ~300 lines of Go that will compile and run identically in ten years.

How it works

go run . serve builds the site and starts a local HTTP server on port 8080. The binary has one dependency: Goldmark — MIT licensed, pure Go, no transitive dependencies.