I probably like writing blog engines more than blog posts.
Earlier this year I wrote about Don’t Break Prod, my software engineering career advice site. While I enjoy writing about this stuff, the original motivation for building the site was to test a new blog engine I’d been working on called Postwave.
For a long time I’ve been using weird, hacked together solutions to integrate blog posts into my sites. It started with my band and old personal sites where I used WordPress to write posts but then made custom functions to pull the posts directly from the database rather than letting WordPress render a nice site like a normal person would. Later, when I built this version of my site, I did something similar with a Jekyll backend and my own custom hooks into the generated html. I liked being able to write posts in Markdown, but it felt silly to circumvent the whole static site generator to build a dynamic page.
So I did what any impractical programmer would do. I just built my own thing that works exactly the way I want, without any regard for general practicality.
This is where Postwave came from.
Named after a Blue Meanies album and built to do a very specific thing, Postwave is a fairly simple Ruby gem that lets me write posts in Markdown and then dynamically integrate them into a custom site. When I’m building a small site I usually reach for Sinatra. Most of the time I just want a simple web application with some dynamic endpoints and minimal JavaScript. And then I want a blog engine that just fits into that.
Postwave gives me simple methods objects and methods so I can use things like post.title and post.body_html to build a post display page and postwave_client.archive to get a structured archive. It also autogenerates an RSS feed for me.
Postwave also has a few simple terminal commands for creating a new posts and “building” the blog, which updates the index, renames files based on post title, generates the RSS file, and a few other things. My workflow for writing posts is just to create a new post in the terminal, write the post in my code editor, rebuild the blog, and deploy the updated site.

It’s not done (but what little personal project is?), but it is usable. I have an site/reference implementation for people to learn about it and the code is available if anyone is interested.
So this site must be using Postwave under the hood, right?
Well… not yet. Dinosaurs Eat Everybody still uses my hacked together Jekyll solution, but that workflow is starting to annoy me so I’m eager to port it over to Postwave now. I’ve been using Postwave for a while on Don’t Break Prod so I feel pretty confident that it’s ready for use elsewhere. I’d like to build some small tools to make it easy to migrate a Jekyll site to Postwave. The post format is very similar and it would just make my migration easier.
Postwave has been a great little “scratch your own itch” project for me. I’m looking forward to using it more for my own blogging needs. And if my problems sound similar to yours, try it out!