← blog

How this blog works

meta

This blog is a folder of .mdx files in content/blog/, read straight off disk at build time. There's no /admin route, no login screen, and nothing new exposed to the internet — publishing a post means adding a file and running a normal deploy, the same as shipping any other change to this site.

A post is just frontmatter plus content:

---
title: "Post title"
date: "2026-07-11"
excerpt: "One sentence for the listing page."
tags: ["backend"]
---

Regular Markdown from here down.

Drop a new file in content/blog/, fill in the frontmatter, write the post, commit, push. lib/blog.ts picks it up automatically — the homepage teaser and the /blog index both regenerate from whatever's on disk, sorted by date. Code blocks get highlighted with sugar-high:

function publish(post: string) {
  return fs.writeFileSync(`content/blog/${slugify(post)}.mdx`, post);
}

That's the whole publishing pipeline.