Ghost Of A Chance

Sunday, 02 February 2014
  • By
  • Jeff Ammons
  • Tags:
  • Blog
  • Node.js
  • WordPress
  • SQLite
  • Ghost

Ghost says, "Boo!"

Time for a new blog engine here.

I've been using WordPress for a number of years, but lately it has felt kind of bulky and in one respect, creaky.

What? Isn't WordPress the number one blog engine in the known universe?

Yes, it is. In most cases it works great, too. But in my case, it is failing in one regard that leaves me with no choice but to make a change.

Azure Websites

For the past year or so I've been hosting my websites on Azure. I really dig their Websites.

Setting up a WordPress site is super easy and fast.

However, since Microsoft doesn't host MySQL themselves, they have contracted another company to provide one MySQL instance for free. Guess what you get for free? A WordPress site that falls down if more than a handful of people hit it at once.


I discovered this flaw last summer when Shawn Wildermuth tweeted a link to one of my posts.

In very short order I received a message from Shawn that said, “Uh, your site seems to be down.”


After some digging I found that the free MySQL instance has a very limited number of connections allowed. Get some traffic and splat.

I needed to change, but which way to go?

  • Host WordPress in a VM instead of using WebSites
  • Switch to the SQL Server backed version of WordPress
  • Write my own blog engine (again)
  • See what else was available.

I didn't want to lose the hands-off nature of WebSites and take on server maintenance, so that didn't seem like a great choice.

The SQL Server version of WordPress seems like going to France to study Chinese…

I'd been thinking about writing another blog engine in ASP MVC that used Markdown stored in the file system instead of using a database. Even thought about a system that would be dynamic only at create time and spit out static HTML at the end.

I did a mini-test of such a thing called Quirkety Export (at GitHub) using Node.js. I used it to convert by old comic FunzieTown to static HTML.

Then I ran into two projects that sounded pretty slick:

  1. DocPad
  2. Ghost

DocPad was like my little Quirkety Export all grown up. It is seriously cool. It is also a bit fidgety to set up and maintain.

Ghost is the new kid on the block. The veteran of a successful Kickstarter, Ghost is based on Node and is relatively easy to set up. It uses SQLite 3 as its database stored in the file system. That makes it very easy to maintain.

The mantra of the Ghost team is just a blog, not a heavy CMS (content management system).

All this appeals to me, so after experimenting with both DocPad and Ghost, I've decided to go with Ghost. For now at least…

The downside is that Ghost is at version 0.4 as I write this and missing one metric ton of planned features. Like plug-ins. And configurable permalinks. The list goes on.

On the other hand, it is very easy to set up a nice looking blog and start writing.

I plan to do some more testing and hacking before I decide to keep Ghost for sure, but for now I'm having fun.