I've recently moved my blog to a new server - a good opportunity to update outdated things. The most important thing was to update my blogging platform, Ghost, since there has been majors updates to it since I've last updated it. Ultimately I went from v1.24.4 to the most recent version v2.21.1.

I wasn't hyped about having new features and all that new and shiny stuff. Honestly, I'm not hyped about Ghost at all anymore - for numerous reasons.

This post is about Ghost 2 - read here for a review of Ghost 5.

The beginning

I remember when I first heard about Ghost on Kickstarter. My blog used to run on WordPress (and my opinion on WordPress is well known) - seeing this new, shiny blogging thing popping up from pretty much nowhere was exactly I was hoping for.

A blogging platform which is just for blogging? Having a neat markdown editor? This amazing dashboard? SEO right out of the box? Ways to extend via plugins and themes? Oh boy, John, you got me sold.

So, being the hasty and impatient dude I sometimes can be, I started to use in a very early phase for my blog (random side fact: until this point my blog was called "doecode" and ran on WordPress).

And you know what? I loved it. It was fast, the admin interface was great and writing was really fun - what else could you wish for?

The hope for something better

Apps

Well, honestly, there were some things I wished for. Most importantly: extendability. I didn't want a second WordPress which gets bloated by tons of plugins - but being able to do "more" would have been a great thing. Think of creating a contact form, adding comments, a login or whatever else could be useful for just a blog.

Gladly there was this thing called "apps", which was essentially the equivalent of plugins. These ominous "apps" weren't ready for production - in fact the documentation even stated:

This is not intended as a guide for App developers just yet. We may scrap the whole lot and start again at any moment :wink:

Uhm, yeah, that's not what I want to read when thinking of developing plugins. In fact it made implementing plugins completely pointless.

But I took it as is and hoped for improvements. They're going to release a stable schema for plugin development with 1.0, wouldn't they?

There's an ongoing issue about Solving Search in Ghost which was opened 2015. When I set up my blog in the "alpha" I was like "Well, they're pretty new, I guess they'll implement such a functionality soon!".

A blog is not just about writing - it's also about being read. Part of "being read" is being able to search content. It would be nice if you read every post I've ever written - but I'm okay if you're just here to find some specific information.

At that point there was no search. But a platform which calls itself "professional publishing platform" would definitely ship with some kind of search in its final version, wouldn't it?

Comments

In my opinion a blog without comments is a pretty dull thing. Take my blog for example: technical guides may do open ways or questions which I haven't thought about. Thanks to the comments basically everyone is able to ask, to bring an additional opinion or any kind of contribution.

If I had a blog about cooking I'd think the same. A blog about cars. It doesn't even matter what kind of blog!" You should give a fuck about your readers. Just giving them some information without having the ability that they contribute to it themselves just seems wrong.

Back to Ghost: Ghost didn't ship with comments back then. It still doesn't ship with some kind of comments. That's ok - this can be solved by apps as soon as they're production ready, right??!

Custom cards

With the release of Ghost 2.0 in August 2018 Ghost announced many new fancy stuff, including a brand new editor - with cards!

The so called "Koenig" editor was basically the equivalent of WordPress' Gutenberg editor. Instead of writing of big wall of text you kinda compose your content which consists of "cards" (which can be text, an image, an embed element like a Tweet, whatever).

I personally don't really give a lot about these "card editors". I like writing markdown. That was one of the reasons I've chosen Ghost!

Even though there's still a "Markdown" card it's a let down. Where's my split screen now? While I'm writing this post I do have one big card which contains the entire post - in markdown.

But wait! There was this one thing announced within this extra fancy 2.0 release post:

ghost-2-0-cards

Being built on a sane, open standard means that developers will be soon be able to build their own cards for custom publishing experiences from simple charts to detailed recipes.

No more split screen - but I can alter my content? It's possible for me to create custom cards for e.g. better code highlighting (with line highlights or file names)? Or alert boxes? A card for selecting memes from Giphy? Or whatever the fuck I can think of? Wohoo!

They announced it. It's stated right there. It must come, right?!

The sad truth

Now comes the sad part - and with it me laying down my good will in believing that Ghost was the right blogging platform for me.

No apps!

To this very day there are no apps. And not just that: apps have disappeared from the docs. Searching for "apps" within the docs yields no results. Seems like they simply trashed the entire idea of plugins - without saying anything about it at all. So press F for:

kickstarter-ghost-plugins

RIP Apps Idea 2013 to I have no fucking clue when they ditched it.

No search!

Let's ask the real questions: is the "professional publishing platform" shipping with its own search after the issue is open for more than four years and we're past 2.0 already?

Nope.

As of now you're probably able to do that via creating your own integration (by using its content api key and such things) and implement search yourself. And if you aren't a developer - well, better start learning to code right now.

No custom cards!

21 minor versions have been released since 2.0 has been released. Did one of them include custom cards? Nope.

That hit me harder than it should because I was literally hyped for that. Hyped for some kind of extendabilty in a system which basically says "Do it the way we want it do be done or fuck off". But... nothing.

Since I was so hyped about this feature I got curious what happened to it. Hopefully not the same atrocities that happened to apps! So I just asked. I asked on Twitter. I asked in the official Ghost Forums. And all I got... was two lousy likes.

And, not just that this new fancy and shiny editor can't be extended - it can't be disabled neither. I have to live with it. Most of my posts will be single markdown card posts without even using another card - just without having a split screen for the preview. This is bullshit.

It's not about blogging anymore

Ghosts initial description on GitHub was "Just a blogging platform". That's the reason I've chosen this damn thing! I wanted a platform which allows me to blog. Write some markdown, hit a "Publish" button, have a new post released with some SEO-relevant stuff already done, be happy.

At some point it has changed to "The headless Node.js CMS for professional publishing".

Okay. If you're no developer a "headless CMS" must sound pretty horrendous.

But I get the point of headless CMS' - they're actually pretty cool things, especially with static site generators like Gatsby or Jekyll.

But I didn't chose Ghost for being a headless CMS. I didn't care about static site generators for quite some time. And now, all of a sudden, the engine I use for my blog focuses on that.

Don't get me wrong here; it's not a bad idea to decouple your backend from your frontend. But it's quite obvious that Ghost has changed it priorities; instead of fulfilling promises made long ago they now work on a different experience and want to ship a different product than initially. It's not just blogging anymore - it has become something different.

How much their priorities have shifted can also be seen by looking at the Memberships & Subscriptions thread in the Ghost forums. Instead of focusing on features like search or extendability we'll get paid subscriptions, personalised experiences, detailed analytics, a community integration with Discourse and user submissions. That's just blogging?

No. That's what I'd use WordPress or a custom solution for. That's pretty high level content management - like WordPress. And let's rememeber Johns words:

But WordPress has grown up - it's not really about blogging anymore. It has moved on to be about websites and content management and all sorts of amazing things. [...] WordPress, by all rights, is no longer just a blogging platform - and that's exactly what Ghost is. It's just a blogging platform.

One additional thing I'd like to point out here is the Discourse integration. Seems like Ghost thinks "Discourse is the way to go when you want to have comments on your blog". Beside the fact that I need to setup multiple systems for having a blog with comments just sucks, I think here's one additional thing which should be kept in mind:

Discourse requires a minimum of 1 GB RAM and Docker. Docker requires sudo. 1 GB RAM is a lot for a shared hoster. And giving your users sudo access seems like a pretty wild idea.

But, again, let's break that down to "Do it the way we want it do be done or fuck off".

Theme development experience is still bad

I have developed Ghost themes - and one thing is for sure: it wasn't a great experience. When creating my first theme, Ghoststa, I thought - again - "well, it's a pretty new system, they're going to improve the theme development experience for sure".

Years later I've created my second theme, Haven - and it was pretty much the same. Even though two major versions have passed, theme development still felt bad.

There's no way to register custom handlebar helpers. Available helpers are pretty dumb (@if can't even check for equality, etc.).

There are no theme options. Oh, wait, that's wrong. There are indeed theme options. There's just one single entry which is supported, which is posts_per_page.

But I get it - why would you care about theme development experience if your ultimate goal is being headless?

No dashboard!

Relatively early in the development of Ghost the Dashboard idea was ditched.

The reason was "shipping something below our standards". That's a good thing. Don't ship things below your standard. But, seriously, simply showing my website as a "dashboard" is above these standards?

blog_admin_site

Show me my latest subscribers. Give me an "idea panel" where I can simply write down ideas for new posts which can be transformed into new posts (which I currently do via a non-published post). Show me some data from APIs (accurate stats from Analytics, Geckoboard, etc.). Show me latest news regarding Ghost. Show me some system metrics. Show me something I don't already know (like the design of my own website).

Conclusion

Before anyone now throwing in the "But Ghost is open source! You can do all these things yourself!" argument: yeah, I get that they're open source. And I get the opportunity open source gives you. But contributing in a form that changes the direction the entire system heads is always a bad idea. I wouldn't contribute to Symfony by making a PR which bundles all components together so installation process is shorter - because Symfony is about separate components. I wouldn't contribute to WordPress by probably trying to rewrite this entire mess and breaking pretty much every compability because I don't care about it - because WordPress is about down backward compatibility. I wouldn't contribute to React by trying to rewrite it entirely in TypeScript (I doubt that I'd be even capable of doing so...) - because React was written in plain JavaScript for reasons. You get the point I guess.

You're not contributing to change the foundation - you're contributing to progress it further. And if I'm completely honest about this topic: I haven't chosen Ghost because "I could do all I want by myself because it's open source!" - I chose it because it was just a blogging platform.

So what's my opinion on Ghost as of today? In all honesty: I don't like Ghost anymore. It has disappointed me countless times by now - and I don't want to get disappointed by a blogging engine.

Ghost has become something different than what I initially liked so much about it. It prefers shipping new and shiny features, without caring about old features. Features stay in some "pseudo" state ("alpha", "beta", call it whatever you want) for years before they either disappear or ... just stay in this state for like ever (hi import/export content, subscriber and pretty much everything which can be found in the so called "Labs"). It's not about blogging anymore. I don't know what it is about now - it seems like they want to become a headless CMS for static sites with direct user interaction in form of registration, etc. (good luck with that!).

Ghost wanted to be a different blogging engine than WordPress. It wanted to be just a blogging platform. But in my opinion - and I'm really sad to say this - it has become a very limited blogging platform which causes a lot more problems than it solves.