How the Markdown Pipeline Works
Every page you see here is produced on demand. There's no build step and no database — just files and a few small Go packages.
The request path
A request for a post flows through four layers, each with one job:
| Layer | Responsibility |
|---|---|
web |
Routing, view models, HTTP status codes |
blog |
Domain rules: hide drafts, order by date |
repository |
Read content/<slug>.md from disk |
markdown |
Split frontmatter, render the body with goldmark |
Safety by construction
Two details keep things honest:
- Slugs are validated against a strict pattern, so a URL can never escape the
content directory with something like
../../etc/passwd. - Raw HTML inside a Markdown file is dropped rather than rendered, so a post
can't inject a
<script>tag into the page.
Small, boring, and predictable — exactly what a personal site should be.
That's the whole trick. The rest is just styling.