Moving from WordPress to Ghost
A couple of months ago a new blogging platform called 'Ghost' was released into the world.
I must admit that I was a bit skeptical at first. Ghost promises a minimalistic approach and a cleaner and better blogging experience. Which is good, no argument here. But there are some missing features that are simply vital for a technical blog. Things like syntax highlighting, searching, static pages and commenting are not included and you will have to implement them yourself if you want to add them to your site.
But, as I am a JavaScript enthusiast -which may be a bit of an understatement-, I decided to give it a go.
Ghost?
For those that don't know Ghost, it is a new blogging engine created in NodeJs. NodeJs? Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. In short, it's JavaScript on the server!
Ghost was originally funded with a Kickstarter project and is quickly gaining awareness, supporters and users. It's open source and still in beta (at the time of writing Ghost is at version 0.3.0).
Take a look at their about page for more information.
First impressions
I must say that I absolutely adore the design the guys over at Ghost created for their new blogging platform. It's clean, intuitive and minimalistic. And fast!
I love the Markdown editor, it's clean and -for me anyways- familiar.
Migrating from WordPress
Migrating from WordPress, currently the most popular blogging system in the world, was actually really easy. There is a WordPress plugin that you can use to export a json file containing your data. You can then import this file in your Ghost system.
For more information and a simple tutorial, take a look here. Or skip that and go straight to the plugin here.
Hosting your new Ghost blog
You have a couple of options for hosting your Ghost blog engine. You could hire (or create) a VPS, doing all the configuration yourself. But, since one of my goals was to simplify my blogging experience, that was a no-go.
I imagine there are -or will be- a couple of Ghost hosting providers out there. But, once I found ghostify.io I never really had a reason to look any further. Ghostify provides a very easy management interface, ftp access for your custom themes and even the option to re-use your existing domain.
When I came across problems with my migration I got help from the Ghostify support staff within minutes. They are really professional and I can only recommend them as a hosting partner!
They aren't free, for a year of hosting you pay $53.34. Which -while taking a look at my current hosting costs- is a bargain. Let's not forget that for this price you get fully managed backups, fully managed upgrades, multiple Ghost blog instances and many more.
Extending to the (lack of) default features
As I wrote earlier, there aren't a lot of features that come 'out of the box' if you decide to use Ghost. Everything you want to add to your blog you'll have to implement yourself.
Luckily, theming a Ghost site is really easy, and if you know a bit of JavaScript and Html I really can't see you having any problems.
Below you'll find the different libraries I used to create this site. I will not go through the different processes step by step. If you run into any problems, just contact me and I'll see if I can help.
Code highlighting
For code syntax highlightinh I used highlight.js. I simply added the reference to the JavaScript and CSS files in my default.hbs file and invoked the library with:
hljs.initHighlightingOnLoad();
Piece of cake!
Search form
Implementing the search form was a bit of a struggle. Since you should avoid changing the Ghost core, you are pretty much limited to front-end implementations.
Which, is kind of a problem when you want search indexing. But, luckily, there is a library for that, Tapir! After you provide them with the link to your rss feed, Tapir will index your site and expose an API your can use to implement your search form.
You can find a tutorial to guide you through the process of integrating Tapir in your Ghost theme here.
Twitter integration
You can use the Twitter Post Fetcher to show your latest tweets on your blog. Take a look at this JsFiddle to see it in action.
Comments
You can't have a technical blog without a comment section. I used Disqus, which is a commenting system that only requires you to paste some JavaScript code in your page. Which serves our goal perfectly. Just sign-up, paste the JavaScript code in the post.hbs file, and everything should work.
The verdict
As you may have already noticed by now, I am an absolute fan of my new blogging platform. It does exactly as it promises, it's simple, elegant, and designed so that you can spend less time making your blog work and more time blogging. You will have less features, but maybe in this case, less is better.
Ghost is both minimalistic and simple, but at the same time it is really adaptable and cutomizable. You have a large amount of power over your themes, mainly because they are so simplistic to begin with.
You don't have to know anything about the backend system. Just a few pre-defined words to remember and you're off.
The main difference with WordPress is that there you have thousands of plugins you can install to change the way readers experience your site. In Ghost, you can do the same thing, but you have to do it yourself.
If you have the knowledge you can do almost anything you can think of. It isn't that hard and it actually is really, really fun :).
Ghost is an absolute winner in my book.