Personal adventures in software engineering. And sometimes other things.

On setting up a blog

I’ve never set a blog up before.

So when I was thinking maybe a reasonable personal project would be to look into the available options and actually get something going, I really wasn’t sure where to start. I’ve journaled on random blog sites because who hasn’t? But I’ve never gone to the effort to actually commit to an established system or software, although I’ve of course heard of some options like WordPress and Drupal.

I had some criteria going in:

  1. Minimal work to get basic blog features (obviously) and theming
  2. Support Markdown for the actual post-writing
  3. Lightweight: nothing enterprise-level, no CMSes
  4. No requirement for writing my own markup or styling
  5. Output that’s easy to generate and can be hosted alongside my other static site content
  6. Preferably requires tech I’ve never used (so no Vue or Angular)
  7. 100% storable to and recoverable from GitHub

First, I thought WordPress might have a static site offering.

I poked around their site and it seemed like they…maybe did? But I didn’t want to sign up to goof off with it to find something with limited support that ties me strongly to WordPress. If support disappears, then what options do I have for migrating? I figured I’d rather look at other more loosely-coupled options than do a bunch of research or make guesses.

I’ve worked with static site generators in the past while in pursuit of Java documentation solutions, so I decided to look at that. Surely someone has taken that concept and applied it to generating blogs?

I ended up at Jamstack’s list of static site generators.

My first serious consideration was Hugo. It met all criteria, but requires a local installation and additional dependencies. I took note of it and went to see if I could find something that was even more straightforward. If I’m being honest, I wasn’t totally sure how more straightforward it could get. But when I’m looking for something to play around with, I lean towards things that I don’t have to run an uninstaller to get rid of.

I briefly considered a bunch of other things, including Jekyll, VuePress, Eleventy, and SvelteKit. Nothing quite met all my criteria. Then I dug a bit into Hexo, which seemed to check all my boxes, and then…

Oh, my, Hexo’s installation process is just an npm install -g

Perfect! Let’s go.