This is kenhaines.net, and this is the first post. I’ve been meaning to set up a proper blog for a while now, and I finally ran out of excuses when I built the engine to run it on.
What this site runs on
The blog is powered by BlogFlow, a blog engine I wrote in Go. The premise is simple: you write Markdown files with YAML front matter, BlogFlow serves them as a blog. No database, no admin panel, no build step. A post looks like this:
---
title: "Hello, World"
slug: "hello-world"
date: 2026-03-24
tags: ["meta", "blogflow"]
description: "Your post description here."
---
Your content in Markdown. That's it.
The site runs on Kubernetes with git-sync handling content delivery — push a Markdown file, and it’s live in seconds. After years of building deployment pipelines for other people’s systems, it’s nice to have one where the entire publish workflow is git push.
What to expect
I plan to write about the things I actually spend my time thinking about:
- Go and .NET — language patterns, performance investigations, and the occasional “why does this allocate” rabbit hole
- Cloud-native infrastructure — Kubernetes, containers, observability, and the gap between the conference talk and the 2 AM page
- Project updates — BlogFlow, logfmt.net, and whatever else I’m tinkering with
- AI-assisted development — practical experience with AI tooling in real codebases, where it genuinely helps and where it confidently generates nonsense
I don’t have a posting schedule. I’ll write when I have something worth writing about, which tends to be when I solve a problem that took longer than it should have, or when I form an opinion strong enough to put in writing.
If any of that sounds useful, the about page has the longer version of who I am and how I got here, and the projects page has more detail on what I’m building. Otherwise — more posts are on the way.