Picking A Blogging Platform In 2025

Picking a platform to host this blog was harder than I expected it to be. And I didn't think my requirements were that tough:

  • I just want to write. I'm not interested in images, video, or complex layouts. It's 2025, but I want a blog layout circa-1999. Simplicity matters.
  • I'd prefer to do it in a nice front-end. I don't want to write posts in VS Code and deal with files. But if I can still export everything as Markdown, awesome.
  • I want to design my own theme, and have a nice experience doing so. That means a good template language and a workflow for previewing changes.
  • I don't mind hosting it myself, but not if doing so is going to be overly complex. If I have to run more than one server/container and you don't auto-update, I'm out.
  • I'd like to have different post types or post blocks. If I write about a movie, book or video game - it would be great to have a metadata preview of that item in the post automatically.

I think people underestimate how important the "famous" Wordpress 5-minute install was at helping them gain traction. If it's too complicated to start, most people (including me) will just bounce off.

Wordpress is too heavy for what I wanted here. We use it for the Issuebear website because Bricks is amazing for building that kind of SEO-driven brochure website.

I spent a long time trying out different static site generators, but universally found them to be an unsatisfactory experience:

  • Writing in a text editor just doesn't do it for me. It looks wrong, the spell checking is terrible, and I don't want to keep remembering how to format the front-matter YAML.
  • The go templating language in Hugo is an abomination.
  • I always need to go back to a terminal and remember whatever command I need to run to make the thing work.
    • And so many of them are Javascript, that's an npm nightmare.
  • I didn't find any that would automatically look up movie details for me. Or any that had a plugin system I could understand well enough to do it myself.
  • The Python options are very limited. Pelican seems best, but it never clicked.

I was tempted by Pika, but it was at the opposite end of the scale from Wordpress - too simple.

So I've ended up with Ghost. Which is more "best of a disappointing bunch" than a true recommendation, but there are some positives:

  • The editor is nice and easy.
  • It has some interesting membership options that could be a direction in the future.
  • The templating language is Handlebars and they've done a good job adding functional helpers to it (better than 11ty has).
    • Although the theme development experience is really poor, because I'd have to install Ghost locally to quickly iterate on changes. I'm stuck compiling zipped themes with a gulp file, manually uploading them and crossing fingers.

No automatic movie/book/video game inserts though. It also has a poor configuration experience and is expensive for what I'm using it for (but very cheap if you're actually running a membership site).

They also used to support sqlite as a database, which made it easier to host yourself. Now they only support MySQL 8.0, which makes it a two container setup on Render. That pushed it beyond "I'll host it myself".

If we launch a blogging platform this year, you'll know why.