Ghost: The Overrated Blogging Platform

I’ve recently set up a couple of Ghost blogs to see what this new platform is all about. Ghost bills itself as a simpler Wordpress alternative for people who want to focus on writing. It received a lot of press, got funded through a Kickstarter campaign, and now has a handful of corporate sponsors backing it. Having seen its evolution from the time it was announced through the first beta to the version currently available today I have to wonder if Ghost really is worth anyone’s time. TL;DR: Ghost is overrated. Wordpress isn’t going anywhere.

Ghost is a solution to a problem people think they have but really don’t. People are asking for a simple way to manage a blog and Ghost is only superficially delivering on that promise.

The technology

Ghost is a Node.js app written with the Express framework. From a technology perspective, there’s nothing special about Ghost. It uses Node which is relatively new on the scene and has a lot of buzz in developer circles. I can’t help but think that much of Ghost’s success so far is simply because developers who know a little JavaScript but who couldn’t launch an Express app themselves feel cool when they launch a Ghost blog.

There’s nothing about Ghost in its current state that can’t be reproduced within a week by any other developer with some basic Node experience. It’s a database that holds posts and author data. That’s it. No comments, no pages, just blog posts and a little meta data. It’s Wordpress without all the stuff that makes Wordpress useful. Now, this alone shouldn’t be a strike against it but Ghost has been in development for over a year with corporate backing and more than enough money to fund its development. That too shouldn’t be a big deal but Ghost implies in a not so subtle way on their own homepage that the software is the future of blogging and that it’s somehow “disruptive”. The truth is it’s neither of those things. Ghost is a very simple CRUD app built with a hipster technology. It’s all marketing and no substance.

The business model

Ghost is taking a page from the Wordpress business model or, rather, copying it completely. In order to download Ghost, at least the stable, non-developer version, is to register on their website first. From there you can either choose to download the software and install it yourself or pay them and they’ll host it for you. It’s and except instead of being called “Wordpress” it’s called “Ghost”.

Unfinished work

There’s supposedly a Ghost SDK coming soon… it’s been coming soon for many months now. They’ve been advertising an “apps” API (Ghost-speak for plugins) which to this day still doesn’t exist. And as for themes, most of them look identical and are incredibly simple to build. They’re handlebars templates with a loop and another handful of template tags. Ghost templates need to be simple though as the software has so little functionality that there’s almost nothing to expose to the handlebars templates for rendering.

Ghost is missing basic functionality like pages and comments. They claim this is a feature and not an omission. I would argue that its just a self-fulfilling prophecy. Ghost would be far more useful for most people with these features. But since they say they’ve left them out on purpose they end up attracting only those people who are okay with the lack of pages and comments. Blogs are just as much about interaction as they are about the content and its inevitable that just about every website owner will want to have at least one static page template on their site even if it is primarily a blog.


Ghost claims that because its a Node app its fast. Well, yeah I suppose it is. But so is a basic Wordpress install. Node.js does not automatically equal speed and many benchmarks have proven that Node’s speed doesn’t really become apparent until its time to scale which most people posting cat pics won’t need like ever.

The whole premise is a lie

When it comes down to it, no matter what marketing speak you get out of Ghost, the entire business is the new, hipster Wordpress clone written in Node.js. The original idea was this hand-wavy treatise on how blogging should be simple with lots of cute screenshots of a very sparse and beautiful post editor. The truth is, Ghost is its editor and that’s all it ever was. It could have been developed as a plugin that replaced the Wordpress post editor with a whole new skin. Wordpress is a success because its accessible to everyone, easy to use, optionally extensible, and reliable. I understand the frustration with it and the inspiration to build something “better” but the truth is that we’re not looking for better software. Instead, we’re trying to control our impulse to overcustomize, add plugins and functionality that we might not need, ignore all the knobs and dials, and just blog. Wordpress lets you do that quicker and more easily than Ghost.

I see Ghost as the hipster younger brother of Wordpress. It’s old and boring. It’s lame because it uses PHP. Its used by everyone and thus has lost its cool factor. It’s really easy to hate on Wordpress. But the truth is that a basic Wordpress install with a single caching plugin will be exactly as useful and great as Ghost. If having the option to post static pages makes Wordpress bad and if the Wordpress API has a lot of features that you are never forced to take advantage of is lame then call me lame.

I like Ghost. I use it and will continue to. I would just like everyone to keep it real and call things what they are. Ghost is nowhere near revolutionary. It’s just Wordpress without the most useful features of Wordpress. Oh, and we can’t forget it’s written in Node.js which makes it automatically cool. In fact, doesn’t Node have an internal module for that?

 * This is how to make something automatically cool in Node.js
var hipster = require('cool-factor');

hipster.use('ghost').then(function(anoint, result) {
  anoint(result).with('coolness'); // Automatically anoint anything Node touches with the cool-factor

Web development

« Wordpress Settings Page Segfaults Apache Keep track of the latest Grunt console output »