Devon Strawn
Design + Computers

My stupid, simple blog engine

The website you’re reading is built with a blog engine that I wrote from scratch in an afternoon.

My blog engine is stupid simple. That’s the point.

I use GNU Make, a couple of Python scripts, markdown, templates, YAML, some HTML, and a little SASS. It’s simple. Easy, even.

My engine even has some fancy bits. It automatically rebuilds the site when a source file changes - which makes it nicer to edit and see changes live. But these fancy bits are also stupid simple. The auto-rebuilder is just inotifywait calling make all in a loop. It’s stupid, right? But it works. And it’s just 3 lines of shell script.

There’s no configuration file. No complex conventions to follow. Just nice, simple defaults.

After the blog engine turns my posts into static HTML files, I upload everything to AWS S3 (via the aws CLI tool). The site is served via S3’s excellent static website feature.

It costs about $10 USD a year to host this site. The biggest expense is registering the domain name. The S3 hosting costs less than a dollar a month. It’s cheap.

Why roll my own blog engine? I tried static site generators like Jekyll et al. But I kept having massive decision debt and configuration fatigue. Because those tools aren’t stupid simple. They’re more complex than my needs, and that complexity gets in the way of blogging.

So rather than try and fix those tools, I chose to build my own as an executable sketch.