It's been a while in the making, but I finally finished the move to Ghost this past week. Earlier this year, I started to have a couple of issues with Kirby. And since I was a couple of versions behind, the thought of paying for another license and updating was feeling like a chore.

When we added Ghost to People-First Jobs, I started to consider the idea of using a hosted service again. While using Digital Ocean was a good learning experience, I don't have a lot of time or interest in keeping up on anything remotely related to server maintenance. So Ghost seemed like a good alternative, and one that played really nicely with Ulysses. Throw in their focus on memberships, I liked what they were doing (although I have no desire to make my audience a business).

So here I am six months later. All the content from my old Kirby install has been migrated to my hosted Ghost account.

Clean up

One nice thing about this process was the chance to go through 11 years of writing. It's something I've wanted to do for a while. So I took my time and manually imported each post into Ghost, reviewing the content itself (a lot of it, but not word for word). I found a lot of typos, inconsistent casing and headers, and some elements that were styled on one version of the blog or another but were rarely used.

Ghost is also the first time in a long while (ever?) that I've used tags. Going through each post was a good exercise in reminding myself of the consistent themes in my writing.


This is also the first time since the very first instance of my site (using Wordpress) where I used someone else's theme. I purchased one from the Envato marketplace and made a few adjustments. I like creating my own designs, but that takes more time than I had.

It's nice knowing the code is a little (lot) better than what I would have written 😅

This theme is also a lot like the very first Wordpress site. It's dark, and aligned to a grid. I may play around with an alternate lighter theme at some point, but for now I'm happy with it.

Ghost itself

This is a slick piece of software. Logging into the admin interface is almost nicer than seeing a Ghost site itself.

There's a lot to like about this tool as a CMS. Here's what stood out to me:

  • The admin UI is great, but so too is the editor. If you like the Medium aesthetic, then you'd like Ghost as well. Although I do all my writing elsewhere, once it's in Ghost, it's a pleasure to work with
  • The settings for a post are nice to work with and give you some good options. Managing dates, the post URL, meta data, excerpts, and marking posts as "featured" are easily accessible
  • The support for tags is nice. As I mentioned above, it's not something I've used in the past. But it is nice to add this layer of structure (and it will mirror well with the tags I use in Ulysses or Roam). And there's even the option to use internal tags so you can make groupings of content without sharing them with the public
  • I haven't yet decided on how to use the membership options, but it's very well done. Someone running a membership business will benefit from Ghost's set up — it takes all the headache out of managing users and integrates nicely with Stripe
  • It includes the option to email posts to members, so it could essentially replace your email marketing tools. However, it still lacks some of the features of a more mature email marketing service (like reporting or more complex list management options)
  • Their support team is small, but very fast and friendly in responses. When I've needed help setting something up, they've pointed me in the right direction
  • The integration right in Ulysses makes a YUGE difference. Publishing straight from my fave editor with the ability to set tags, a custom URL, and an excerpt are just 👌

Where it's lacking

Of course, like any publishing platform or CMS, there are some things missing from Ghost. Here are a few that I found in making the switch.

  • There is no default archives functionality. Out of the box, you have the basic blog set up with a paginated list of all your posts. But if you want a basic list that points to each post without an excerpt or the full post content, you have to build that yourself. Here's a good starting point
  • Another strange omission is search. Out of the box, there is no search functionality. The Ghost team has a tutorial to add it, but they're suggestion is using a third party service
  • Another part of a good blog (in my mind) is link posts. Ghost doesn't see the value in those and doesn't include any option for it.


Now, Ghost is priced for serious publications. The lowest plan is $36 per month (USD, so just under $50 CAD) — that's a decent cost for a small blog like mine.

However, I was running close to the same price if I factor in a one time purchase of Kirby, plus monthly costs for Digital Ocean and ServerPilot. Add in the potential option to use it in place of a separate email service and it makes a good investment. And I’ve always considered my website a part of my business and a worthy putting some money into.


I'm happy with the change. Not only is it nice to not worry about hosting or servers, the process of migrating was a great chance to review all my writing over the years.

Any CMS will require a serious blogger to learn something new and dig into the code & functionality it offers. Ghost is no different. But their focus on running a transparent, open source system that enables authors to easily charge for their writing is something I believe in.

It’s an easy recommendation to make.