Day 1 Review of the Ghost Blogging Platform

| Web Design

Ghost-Logo-on-WhiteWe've covered Ghost before on this site.

Ghost is designed to be nothing but a blog. It was built to be a simpler, lightweight alternative to WordPress.

A month ago, the first version of Ghost launched to people who had sponsored the project's development on Github.

Today, Ghost was released to the public. In this review, I'm going to download and test Ghost for the first time.

What is Ghost built with?

  • Frontend: Ghost is written in Javascript.
  • Application Framework: Ghost relies on the Node.js framework. It also uses Node Package Module to do server-side processing.
  • Database: Ghost uses SQLite3 which is a file based database system.
  • Templating: Ghost uses Handlebars.js.

All of those things are substantially different from the WordPress / Joomla / Drupal ecosystem which relies on PHP to drive the site and MySQL for a dynamic database.

So, be warned ... this will be a radically different experience than working with any of the dominant CMS systems. Ghost won't install our your normal servers and it won't include a line of PHP.

It's worth noting however that Javascript is becoming increasingly popular. Even WordPress is becoming more and more reliant on Javascript for core features.

Getting hold of Ghost

Remember that this is the 0.3 version of Ghost. There's some distance to travel before we even get to the release version 1.

Installation

Currently the installation options for Ghost are limited.

  • Hosted: there will be a WordPress.com-style hosted option for Ghost, but it's not public yet. The Ghost team "hope to open it up publicly to everyone in a couple of months."
  • Self-hosted: there will soon be options to install Ghost with Rackspace and Digital Ocean.
  • Vagrant: there's a deployment script for Vagrant here.

However, for me, being short of time on Day 1, I wasn't able to reliably test any of those installation options.

By far the best choice for me was the Bitnami stacks which allowed me to put Ghost on my local machine: http://bitnami.com/stack/ghost

We've covered other Bitnami installers before. You can get them for Joomla, Drupal and WordPress in the Mac App Store. You can also download them from the appropriate URLs:

To test Ghost, you can simply download and install the Bitnami app.

media_1381782670408.png

After installation you'll see a control panel like the one below.

  • Click "Go To Application" to test Ghost.
  • Click "Open Application Folder" to browse the Ghost files.
media_1381785686709.png

Using Ghost

The first installation of Ghost comes with a simple theme called "Casper" (as in the friendly ghost).

Casper is a black and white design with an enormous oversized header.

There's one intro post. That's post is a little confusing here ... it's designed to be an explanation for people who are logged in.

media_1381786151102.png

To login to Ghost, add /ghost/ to your URL. I also found that /admin/ and /administrator/ worked.

You'll see a very minimal admin login box:

media_1381786427441.png

The Ghost admin area is very, very simple. There's a black admin bar, a list of posts on the left and one post visible on the right. That's it.

media_1381786510046.png
  • Click the pencil in the top-right corner of the post to start editing.
media_1381786607387.png

It's at this point that the demo blog post becomes very useful. It gives a short introduction to "markdown" which is the formatting used for all Ghost posts. You make updates on the left and they are automatically previewed on the right.

media_1381786678755.png

There's a small tagging feature in the bottom-left of the screen. That's the only way to categorize content.

media_1381786751822.png

This kind of simplicity is the whole point of Ghost.

How simple is it? There's a total of 7 settings for your whole Ghost site.

There's really nothing to do in the Ghost interface except write.

media_1381786867373.png

Currently it looks as if Ghost only supports one user account.

Under the hood with Ghost

Ghost is 1.4 MB in size.

In comparison, Joomla, Drupal and WordPress weight in at between 3.5 and 8.5 MB.

Here's an overview of the Ghost file structure. Notice that all of the key files are .js files:

media_1381787270825.png

The site database is stored in /content/data/ghost.db. All of your site settings, content and user details will be in here.

media_1381787559638.png

The image folder structure appears to be organized in a similar fashion to WordPress, by date. That allows Ghost to launch without a media manager:

media_1381787808205.png

Here's the Casper theme folder. Notice the .hbs file endings? That's because the theming system uses Handlebars.js.

media_1381787882682.png

Here's what Handlebar.js looks like in action. At first glance there are similarities to Twig which will be the templating engine in Drupal 8.

media_1381790025677.png

Final Thoughts

Overall, this is a good 0.3 release.

It's also way, way too early to give a thumbs up or down to Ghost.

You won't see many people using Ghost soon because the installation process is still tricky and doesn't work with most hosting companies. By going with a Javascript stack, Ghost is placing a bet on the long-term future of the web being Javascript. That makes things more awkward now and reduces it's mass appeal, but it may bode well for it's long term success.

Ghost has momentum and it has peoples' attention. Most open source projects never get either. The next step is the most important: can the Ghost team build on their initial momentum? The Ghost team need to keep working on code, but even more importantly they'll need to bring in hosting providers, designers and developers. Keep an eye on the Ghost codebase, but also on http://marketplace.ghost.org.


About the author

Steve is the founder of OSTraining. Originally from the UK, he now lives in Sarasota in the USA. Steve's work straddles the line between teaching and web development.