Quick Thoughts on Ghost - better than WordPress?
This post is from 2014, so some details may be out of date.
A year ago I ported my older blog, srced.com, to the Ghost blogging platform from WordPress. A couple weeks ago I combined my blog & portfolio together… all powered by Ghost, so I have had quite some experience with Ghost thus far. Here are my thoughts after using Ghost for a year.
The Good
- It’s fast. As Ghost is simply a blogging platform and focuses only to be that, it’s faster than full-fledged CMSes like Joomla, Drupal, and WordPress.
- It just works. The admin interface of Ghost is incredibly easy to use. It doesn’t have very much to it, so it helps you focus on what you want to do best… blog.
- Different data-stores. I was happy to see that Ghost supports both SQLite and MySQL. I hooked my installation up to a MariaDB instance, and it works great. I was also happy to see nicely defined indexes in the schema… thank you, Ghost authors.
- Theming is brain-dead easy. The theming system in Ghost is completely handled by Handlebars, which is significantly easier to work with than with all the other PHP-based CMSes that I’ve used.
- The Ghost authors also built a nice template structure that you’re basically forced to follow (for right now that is). This was a great move on their part to standardize everything.
- HTML in posts works great. Because the editor is Markdown-based, you can throw as much HTML as you want in the editor. This is great for adding in custom styles that you’ll need only in that post. No ugly divs, line breaks, or anything of that nature… WordPress, I’m talking about you!
- Static pages. Even though Ghost does focus on blogging, they did add in the ability to create a static page; this is great for about pages and the like.
The Bad
- Not for advanced blogs. Remember how I said Handlebars makes templating Ghost really easy? It also can make it insanely difficult to add any non-stock behavior to the themes. Ghost does not support the addition of custom Handlebars helpers, and because of this, it is impossible to add in your own view logic to your themes. For example, I wanted to pop up a message to people when they view my older blog posts… this is not possible on the server-side view logic yet without editing Ghost’s source code.
- Ghost has an ugly upgrade process. Because Ghost is based on node.js and that it acts as its own web server, it’s impossible to upgrade the code base without restarting the node process. You can technically change the port in the config, edit the upstream port on your main proxy web server, spool up a new instance of Ghost & reload the proxy server, but this is a nasty process for a regular person. So I don’t recommend Ghost to a novice user who runs a high-traffic blog. There are ways around this (like fronting Ghost with Varnish) and never having stale cache, but this is definitely an advanced setup (this is what I do and it works well).
- Not compatible with most shared hosts. Shared hosts will never allow their users to run a custom node.js process on their servers, and because of this, this reduces the target audience of Ghost significantly. However, a multi-site like feature would fix this issue, as shared hosts would have to run only one Ghost instance. Hopefully this will be in the pipeline as a hosted version of Ghost is already offered, which probably uses a multi-site like setup.
- No commenting system. Really? When the Ghost authors stated that they’re focusing on a blogging software, they meant it. Ghost does not come with a commenting system; they recommend using something like Disqus. I don’t find this acceptable, but that’s just me. Ghost should at least partner up with Disqus/Livefyre/etc and have a one-click install method to make commenting easier for everyone.
- No apps/plugins. It is still in the pipeline to finalize a plugin/app ecosystem.
- The live editor is weird. The editor isn’t a normal HTML input, and because of this, the things you expect in an editor sometimes don’t work as expected (like dragging and dropping text).
Summary
Ghost is really neat… it’s open source, the code-base is clean, and it’s fast. However, you really have to have your own server along with adequate JavaScript knowledge to customize it to perfection. I cannot either see a large, high-traffic blog using Ghost as it’s just not as customizable as people need it to be.
As soon as they add Handlebars helpers and plugins, I can’t see Ghost gaining much traction among the non-developer folks. WordPress wins hands-down in terms of functionality, but Ghost wins every other topic as what it does, does it really well.