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/subscribe.md
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 “2022-08-08-fancy-blog-title.md”, 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