Ghost Writing

During its 16-ish years long life, this site has been powered by a few different content management systems. First, it was Greymatter, then a simple one I wrote myself in PHP, called Bugger as an homage to Blogger, and for the last 7 years, WordPress has been in control.

WordPress is great for blogging, and it can be used for a lot of other things as well. It can, for instance, be turned into a complete e-commerce platform without too much effort. A lot of options and features can often lead to a piece of software becoming bloated and confusing, but thanks to its plugin architecture, WordPress has not fallen into that particular trap. For me, the only real drawback with WordPress is that it’s written in PHP. It’s not that PHP is bad per se. Contrary to what you usually hear, it is possible to write beautiful code in that programming language - but it’s also incredibly easy to write crappy code.

The problem with WordPress being written in PHP is that when I modify themes, play around with plugins, and write site features like A Picture A Day, PHP is the natural path to take. Being fluent in PHP is great, but it’s not something that helps me build knowledge I can use professionally. The programming language is more or less dead and forgotten in my line of work, these days it’s all about JavaScript - both on the client and server side.

Just a couple of days ago, I came across a blogging platform that might enable me to continue to feed you people with average quality writing, and the same time make me more comfortable with JavaScript: Ghost.

Written entirely in JavaScript, Ghost can be self hosted on any server running Node.js. This means I can get it running on VBOX4 without breaking too much sweat. On the client side, Ghost uses Handlebars, which allow users to create semantic front-end templates. Ghost’s choice of technologies makes it a lot more relevant for me professionally than WordPress.

That’s swell, but Ghost is a bit too basic features-wise. Compared to WordPress, it’s almost feature free, and support for plugins (or “apps” as they are called) is just in its infancy. Also, the transition from WordPress to Ghost will not be without problems and potentially a lot of grunt work: A WordPress plugin to export content to Ghost exists, but it ignores basic things like post metadata because “Ghost is just a blogging platform”. For some weird reason, attaching metadata to your posts isn’t considered blogging. While trying to import a file generated by the plugin, Ghost decided to die on me, and lock its database. So we’re not off to a particularly good start, Ghost and I.

While we’re on the subject of databases; the developers of Ghost has decided to use the relational hsql3 database. With its intense focus on blogging, I’m a bit surprised that a document-oriented database like MongoDB isn’t used instead. Blog posts must be a great use case for a document-oriented database. Or maybe I’ve misunderstood something fundamental.

Still, despite Ghost’s current shortcomings - no metadata, no comments, and very basic plugin support, just to mention a few, I’m tempted to give it a try. Ghost is under active development, and with over 4,500+ forks and 15 pull requests merged in the last 5 days, I’m pretty sure the software will grow to become a serious contender to WordPress - at least from a bloggers perspective.

It’s probably worth mentioning that WordPress seems to be gradually moving away from PHP and towards JavaScript. With the recent release of Calypso, the commercial branch of WordPress, is now running an admin interface built with JavaScript. How long it will take for the community edition of WordPress to start using Calypso remains to be seen.


This post has no feedback yet.

Do you have any thoughts you want to share? A question, maybe? Or is something in this post just plainly wrong? Then please send an e-mail to vegard at vegard dot net with your input. You can also use any of the other points of contact listed on the About page.


It looks like you're using Google's Chrome browser, which records everything you do on the internet. Personally identifiable and sensitive information about you is then sold to the highest bidder, making you a part of surveillance capitalism.

The Contra Chrome comic explains why this is bad, and why you should use another browser.