Couple of months ago I wrote about this new great blogging platform called Ghost, which aims to fill in the gap that was left when WordPress became a CMS. I backed this project on KickStarter and receive a preview version on Friday, so I tried it and decided to do a small Ghost Blogging Platform review here.

Installing Ghost

As it was announced, Ghost blogging platform is made in Node.js and it requires version 0.10.* to function properly. This is not a problem to test Ghost on local machines, to get it visit http://nodejs.org and press ‘install’ to download the latest stable version of Node.js, it will install proper version according to your OS.

If you are using Windows, be sure to restart after installation, so that the path variables are set.

After installing Node.js, it is time to install Ghost. This is also easy-peasy, you just unzip the platform somewhere on your hard disk, open command prompt (or terminal) to that folder and run:

npm install --production

The last parameter can be production, development or testing… After few moments, Ghost blogging platform is installed and ready to use. Before we start the platform, we can adjust the URL for the project. Open up config.js file in the root of the Ghost installation and adjust your url in respective environment, I made mine look like this:

... production: { url: 'http://localhost:2368', mail: {}, database: { client: 'sqlite3', connection: { filename: path.join(__dirname, '/content/data/ghost.db') }, debug: false }, server: { host: '127.0.0.1', port: '2368' } }, ...

If you want to use MySQL instead of SQLLite (who wouldn’t), first create your database then adjust your database settings in config.js like this:

... database: { client: 'mysql', connection: { host: 'localhost', user: 'root', password: 'yourpassword', database: 'databasename', charset: 'utf8' } }, ...

If you use mysql, but get this error:

Error: mysql is not a valid Knex client, did you misspell it?

you have to install mysql adapter for node.js, simply run this command in command prompt:

npm install mysql@2.0.0-alpha9

Now, start the platform by entering in command prompt:

npm start

Now, your blog is ready on http://localhost:2368.

Registering

Before using Ghost, we need to register a user on /ghost/signup. It is not clear, but it seems that at this moment only one user can be registered. When you sign up, you will be taken to admin part of Ghost blogging platform.

Ghost settings

When you click on the Settings link in the admin part, you can adjust several Blog settings like Title, Description, Logo, Cover image, Theme … There is a also a User setting part, where you manage your user profile with Avatar, Bio, Website and similar information.

Content editor

This is the most expected part of Ghost and believe me, it is awesome. Ghost developers made a real time preview MarkDown editor, which is, well, awesome. It is fast, beautiful, it supports MarkDown, but can also render plain HTML, which is great for things MarkDown can not do like tables and forms. Everything can be added with MarkDown syntax, but also with handy keyboard shortcuts: When you are inserting an image, there is a handy uploader helper rendered in Preview pane, so you can upload and image in seconds. If you click a link image in the lower right area of image uploader, you can Add image from URL… Every post can be tagged, which is done by writing tags in the lower left corner of the MarkDown editor: Also, post’s slug can be altered by clicking settings icon in upper right corner of the Preview part of the editor:

Theming

Believe it or not, there are already some great Ghost theme marketplaces open, featuring some great Ghost themes like Polygonix. Some really great themes there. Anyway, Ghost uses Handlebars.js for theming, so it should be fairly easy to create your own themes. The documentation is here, just so you can see how it looks and feels. The structure of the theme is:

/css style.css post.css

/fonts

/images

/js

/lib

/partials

default.hbs

index.hbs [required]

post.hbs [required]

At this moment only index.hbs and post.hbs are required for your theme to work. If you want to play, just copy the default theme Casper folder, rename it and you can select your new theme from Ghost settings screen. That’s it.

If you want to see how to make a Ghost theme, go to my Making of Twenty Thirteen Ghost Theme tutorial.

What’s coming

Well, there is plenty to do still from developer’s point of view. That beautiful Dashboard, plugin UI and API, navigation functionality and UI, user management… All in all, Ghost is a great blogging platform even at this stage. My concern is that it can not be installed on most shared hosting platforms. But, it will be available as hosted solution, too. Time will tell. Please share your thoughts below in comments.