Goodbye Ghost, Hello Hugo

Posted by ryansouthgate on 12 Dec 2022

This blog has been hosted on Ghost since I first set it up back in 2016. That’s now changing, for a number of reasons…


When I first signed up with Ghost, I was paying around £56/year for hosting. That’s not cheap, but it’s not expensive either. At the time, I was happy to trade that money for not having to care about hosting/updates/downtime etc. It was money I was happy to part with, for the convenience Ghost offered me.

Since 2016, the price of everything has increased, and Ghost is no exception. That £56/year has now climbed to around £80. Given the dire energy situation here in the UK (which shows no signs of slowing down), I’ve been looking at my finances. That extra £25/year for Ghost, this is where I start to question the cost of the amount of time I’m being saved by Ghost.

At the time of writing, a year of Ghost is equivalent to powering (Gas & Electric) my home for a month.

You’ll find out below, hosting my blog on Ghost hasn’t been as “hands-off” as it once was.

Small problems

In the early years, setting up Ghost was a breeze. I picked a theme, installed it, and then started writing posts.

I prefer writing posts in VS Code, in Markdown, and then copy/pasting those into the Ghost Post Editor and publishing. Unfortunately the last couple of times I’ve created and written posts has been a frustating experience. The Ghost editor has changed a lot over the years, they’ve clearly geared it more towards non-techie people, trying to offer an easy writing experience. But, my workflow seems to have suffered as a result. I’ve tried copy/pasting the Markdown into the Ghost Editor, however, it sometimes doesn’t know what’s going on, and puts garbage, uneditable text into the Ghost editor. Ghost used to just let you write, in a clear editor (a big text box), now it’s different, it’s more confused.

First of all the editor doesn’t event look like an editor:

The Ghost editor which doesn’t look like an editor

There’s no cursor or indicator that this is editable, you just click on text and start typing. They’ve gone against all the learned behaviours and conventions of editing text on WebPages, built up over the last 30+ years and done their own thing.

The editor, also tries to figure out where you’ve written Markdown and where you haven’t, making the experience even worse. Where you’ve written Markdown, you get small Mardown icons and hovering over the text gives you a bounding box……with an edit button to start editing?!

A confused markdown editor

Clicking the pencil - edit icon - a few times eventually reveals this totally different editing experience, on the same page.

A confused markdown editor - part 2

Having different conventions for editing text on the same page is infuriating for a techie user like me. It gets in my way, slows me down and makes this experience not a pleasant one. The experience has been made too simplistic and tries to cater for the lowest common denominator, whilst harming other users.

I’m no longer Ghost’s target customer

Over the years Ghost has grown and I feel they’ve drifted away from their original goal. Back in 2013, the Ghost Homepage simply states: “Just a blogging platform”.

Where, more recently, their messaging has changed, Ghost is now a Professional Publishing Platform.

It’s a subtle difference, but an important one. I like to blog about tech things I’ve done, or things I’ve figured out. I’m not a publisher. The about page above talks about “journalists and writers”. I’m clearly no longer their target market, and the increase in pricing also reflects that. They’ve outgrown me and that’s ok.

Their homepage now (at the time of writing), is quite telling…

Ghost homepage which talks about monetising your audience, and turning them into a business

Ghost have their sights set on bigger fish. I don’t want to monetise anyone. I’m not here to make money off this blog. I’m not their target customer

Updates, updates and more updates

Who doesn’t like free stuff?

As part of Ghost SaaS, you get updates to your Ghost instance. While I always enjoy “free” (I am still paying for this after all) features, sometimes they just get in the way.

I’ve seen multiple Ghost updates during my time using the platform. Pretty much all updates since first using Ghost have offered me nothing. There’s been no new features that were useful to me, every update has just eaten away at my time.

The Ghost marketplace used to have loads of free themes for blogs, and some of them looked really good. Over time however, that number has dwindled and some of the blog themes on offer look far too simplistic and there’s no character. Case in point. Another piece of evidence that they’ve outgrown people who just want to blog.

When a major version update comes out, your current theme is almost certainly not going to work. Ghost do give a reasonable amount of time to update to the latest version, before they switch you automatically. But, for me, every update has followed this flow:

  1. Sh*t, there’s an update
  2. Check current theme compatability -> not compatible with new version
  3. Find a new theme that I’m not 100% happy with, but “it’ll do” as time is running out
  4. Make small tweaks to that theme, which better fit how I want the blog to function and look
  5. Deploy the theme, doesn’t quite look right, spend a few hours tweaking the css, zipping it up, and uploading it my instance of Ghost

I’d love to be able to migrate the theme myself, and keep that consistency. However, I’m not a designer, and I just want a platform I can blog on, for people to read. I don’t want my page structure or the “look and feel” of my site changing regularly. I want it to be useful and consistent

I want simple

Look, I’m getting old. I’m getting grouchy.

I just want my stuff to work, I don’t want to have to constantly update a blog, change/modify themes and react to changes on my blogging platform. I’ve not got time, my blog needs to work for me and the people who read it.

I want to log in, write a post, and have that be accessible to people, with the least amount of friction. Unfortunately, Ghost no longer ticks that box for me.

Remember the good old days, of HTML/JS/CSS? - I still know those and they feel like they’ll fit the bill now, more than ever!

Migrating from Ghost to Hugo

So, to solve all these problems, I’ve migrated to Hugo. This rant post has already turned out longer than I thought, so I’ll detail the migration in a future post.

It’s been a breath of fresh air and I’ve solved stuff too:

  • I self-host this on an old laptop (more about this setup coming soon…)
  • No more Ghost Server Application. The complexity of having a server-backend for my simple blog is gone
  • I’m in control of changes/updates. I can apply them when (and if) I want. Since I have Hugo outputting HTML, there’s no forced updates and less stuff to go wrong/change
  • It’s all in Github - I can see a full history of all the posts and everything that has been changed
  • I just write a simple Markdown file with a small config section of TOML at the top (url, title, description etc), and Hugo generates the HTML. It’s really easy to debug/modify
  • When I want a post to go live, I just push the changes to my Github Repo
  • Created a 2-stage DockerFile build process. It outputs some HTML/JS/CSS files which are picked up by nginx and then served

Yes, it took a little bit of time setting this up. But now it’s up and Just Works™, and should require a lot less maintenance than Ghost


comments powered by Disqus