Why I ditched Wordpress for Ghost
It's no secret: I'm a self-hosting nerd. I manage over 40 different websites for my customers, my company, and myself. But that's not all. I also admin dozens of Docker containers and other hosted applications for both business and pleasure.

It's no secret: I'm a self-hosting nerd. I manage over 40 different websites for my customers, my company, and myself. But that's not all. I also admin dozens of Docker containers and other hosted applications for both business and pleasure.
I'm not shy about it, either. I love being able to quickly spin up a new service and learn all about it in real time.
This all started, for me, with Wordpress. Back in the day, Wordpress was the defacto standard. In many ways, it still is. It's the primary Content Management System for the web, being the underpinnings of an estimated 40-something percent of today's websites. I've been using Wordpress for decades (yes, plural).
That's why I went with Wordpress for my blog when I started it last month. It's common. It's familiar. And it's reliable.
Given the drama with Wordpress founder Matt Mullenweg and the way Automattic has been (mis)behaving, though, I felt uneasy about choosing their CMS for my blog. But I wanted a dedicated, stable, and extensible option. After all, that's what Wordpress is known for.
But as I was using it, it felt... let's just say it felt long in the tooth (to say the least). It's slow, it's unfocused, and the plugin system is clunky at best.
Ultimately, though, my goal was to enable the IndieWeb plugin and contribute to the growing community of independent site administrators who are embracing the federated nature of the Internet and using W3C protocols for a more social web.
The issue was, though, the plugin didn't behave in the way I wanted and (no ill-will towards the developer) I found it more frustrating and confusing than helpful.

So, being irritated by the slowness, the odd choices of the main plugin I wanted to use, and my overall disdain for Wordpress' parent company Automattic, I was regretting my decision to use Wordpress.
I'd been searching for alternatives and I was reflecting on my time with Ghost.
Ghost is awesome. And I had considered it when I was thinking about starting this blog. But I had run my old site Viewsink using Ghost and I had two reasons why I didn't want to use it for this endeavor:
- It was "too much" for what I wanted.
- Ghost has a handful of features that I didn't need
- It runs on Node.js (which is not my favorite backend)
- I'd have to deploy and manage a Docker container on my limited public cloud infrastructure
- It also wasn't "enough."
- My primary motivation was the IndieWeb integration (fediverse/webmentions/pubsub/etc)
That last one was critical. I really wanted at least Fediverse integration...
Then, this morning, as I was scrolling through Mastodon, I saw my friend Jason post this:
Well, that clinched it. But I had to complete tomorrow's video before I could migrate the blog.
Here's the video I made today, btw.
After I wrapped up production, I quickly turned my attention to making the switch. I exported my Wordpress blog in .xml
format in preparation.

Then, I spun up the docker container using the docker-compose.yaml
they provide. Of course, I changed the required sections. Importantly, I had to specify the most recent version of the Ghost image (currently, it's version 5.115.1-alpine
).
Maybe the explicit version specification wasn't strictly necessary (I think I probably had the old Ghost image hanging around from the Viewsink days), but it worked for me.
So yeah, I got it set up, got the Wordpress export added and found the images from Wordpress were (mostly) broken. That was a quick 15 minutes of manual labor to download the images from the old site and edit each post in Ghost's backend.
Thankfully, I had only posted a handful of articles so this manual process wasn't too tedious.
But now? We've got a fresh new Ghost install and everything is slick and delicious. I'm trying out the Social Web beta and it seems promising. And I'm excited to see where Ghost goes from here!
If you're interested, you can sign up to get notified when I post new articles. I'm planning on using this as an incubator of sorts. I've also noticed that my content gets scraped by AI chatbots so I may make access require an account soon.