Replacing Jekyll for my blog

I started this blog in 2016. At the time, “static blogging” was becoming very popular and getting started was easy. I simply used Jekyll with GitHub pages.

But then I got a new laptop and the simplicity turned into a nighmare. A new Ruby version, an incompatible Jekyll gem version, cryptic C++ compilation errors of one of Jekyll’s dependencies. I’ve tried RVM, I’ve tried Bundler, I’ve tried Docker.

At this point, blogging felt more like fighting with the tools.

After I upgraded to M1 Mac, the setup broke again and I decided to take a different path.

I looked for Jekyll alternatives but didn’t find anything that I liked. Here’s what I need:

Sometime in 2021 I re-implemented parts of Jekyll I cared about in JavaScript in ~200 lines of code. It only needs NodeJS, all the dependencies are vendored-in (so there’s no package.json, yarn, npm, pnpn or whatever). It only uses JS syntax that’s been stable for years, so there’s no TypeScript or Babel needed.

I got to keep all the custom Jekyll theme files. Even the fancy related.html template that renders “Related posts” section at the bottom works without changes!

On top of that, I added a few features that make it easier for me to write. I start by typing blog in my terminal, and I see this:

$ blog
Building pages/
Building pages/talks.html
Listening on http://localhost:9099/

Things you can do:
  n [title] - Create a new file in _posts
  p         - Commit & push to GitHub
  e         - Edit in VSCode
  w         - Open in browser

This little menu let’s me take the most common actions right from the console. For example, the first command converts “Fancy Blog Title” into “”, creates this file in the right place from the template and opens it in the editor.

It’s amazing how much these little inconveniences prevented me from writing!

However, I can’t say I’m completely happy with the static blog setup. Here’s a few areas for improvement:

At this time, I’m not planning to turn this into a standalone product. I like that it’s just a part of this blog and I can keep it very simple and very specific to my needs.

Related posts:

Hello, world!

Hello! This text lives here to convince you to subscribe. If you are reading this, consider clicking that subscribe button for more details.

I write about programming, software design and side projects Subscribe