on Reviews

Ghost blogging platform review

8 comments
ghost-logo
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedInShare on RedditShare on StumbleUpon

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.

Ghost Blogging platform review

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. ghost2 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. Ghost MarkDown Editor 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: Ghost 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. Ghost image uploader 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: Ghost tags Also, post’s slug can be altered by clicking settings icon in upper right corner of the Preview part of the editor: Ghost slug 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:

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.

Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedInShare on RedditShare on StumbleUpon



  • Tom Doggett

    I’ve been very impressed with what I have seen so far. I’m almost ready to move over to it, but I need the functionality for scheduling future posts to be finished first. I can’t imagine that will take very long. The only issue I can see in the near future is the lack of popular documentation for such things as setting it up through or alongside Apache/Nginx.

  • http://aallen.net Andrew Allen

    I’m trying to change the database connection, but when I use anything besides sqlite or sqlite3, such as mysql or pg, I get “ERROR: mysql is not a valid Knex client, did you misspell it?”. This is happening even though knex.js lists the following as default clients:

    // Default client paths, located in the `./clients` directory.
    var Clients = {
    ‘mysql’ : ‘./clients/server/mysql.js’,
    ‘pg’ : ‘./clients/server/postgres.js’,
    ‘postgres’ : ‘./clients/server/postgres.js’,
    ‘sqlite’ : ‘./clients/server/sqlite3.js’,
    ‘sqlite3′ : ‘./clients/server/sqlite3.js’
    };

    Did you have to change anything else to get Ghost to run with an alternate database client?

    • http://codeforest.net Zvonko Biškup

      Hi Andrew,

      it seems you don’t have mysql adapter installed in node, try running:

      npm install mysql@2.0.0-alpha9

      I hope that helps…I will add this to the article for other people, too.

  • http://www.polygonix.com Darren Bracey

    Hi Zvonko,

    A great and informative article.

    I was reading it thinking “this is an excellent write up” and then as I kept reading I was pleasantly surprised to see you’d mentioned our themes as well!

    Thanks for that and I’m pleased to hear you like them!

    All the best,

    - Daz

    • http://codeforest.net Zvonko Biškup

      Thanks Daz,

      well your themes are really great and they deserve a spot in this review…

  • http://www.ylipsis.com Alexandru

    Hi
    I just found out about ghost today and it sounds really interesting.
    Do you have any idea of when it will be public? The official site mentions something about “towards the end of Summer 2013″ but we’re already in September.
    Thanks!

  • http://www.telecomwereld.nl Gertjan

    Looks impressive, might give it a try.
    Public launch date is october 14th, as stated on their website…

  • http://111110100.blogspot.com 111110100

    Interesting. I’ve heard about Ghost and I’m wondering how it scales. I would love to get a hold of this platform and see how it scales. Or should I just rely on Varnish/Nginx to achive this.