I started this blog on the platform Ghost. I was excited about finally using it and fully intended for it to be my full-time platform. Two weeks later and I have abandoned it in favor of the ever-popular Wordpress with no intentions to return to it.
Why use Ghost?
I first heard about Ghost in May 2013, I believe through a tweet by then-editor-in-chief of The Verge, Josh Topolsky. I was immediately intrigued by the promises of its Kickstarter campaign and contributed $20 to it. I even got my name on the Launch blog post! Woo!
The premise was great. None of the CMS-centric extras of Wordpress, a focus on performance and the blog, and a myriad of cool design and features. It seemed like the future of blogging and I was excited for it.
An image from their Kickstarter, an image that made me back them.
Two years after its initial launch, I decided to start this blog in an effort to voice things I encounter in my work each day. I chose Ghost with no hesitation. Setting it up was... mostly painless. I'm not super familiar with Node.js, so getting it to run without having to babysit it was an experience I wish I hadn't had to go through (just use nodejitsu/forever for the record). Finding a decent theme was difficult and configuring the theme even more troublesome. From the very installation, it was clear to me this wasn't the promised one and that my dream platform wasn't as great as I had hoped for.
Before I get into the negatives, I do want to say that Ghost has plenty of great things going for it.
For some inexplicable reason, I absolutely love Markdown. I use it daily at work with Quiver and for GitLab. For me, it has become a natural syntax to work in and I have no interest in using a WYSIWYG editor. Ghost's Markdown editor is fantastic and really appealed to me when I started using it.
The Ghost Markdown Editor
The side-by-side editor works wonderfully and while it would have been nice for the preview to scroll with the actual editor, I don't think I could have asked for a more ideal publishing tool.
One of my first appeals with Ghost was its promise of speed, apparently a hallmark for Node.js apps. Google developers frequently tout the "1000ms" mark as the absolute max for a page to load and even after setting up my blog through Apache and mod_proxy, plus a light theme, Ghost was coming in at <800ms. By comparison, this Wordpress blog is loading at 2000ms, something I need to work on reducing.
No Frills Blogging
Ghost is very, very simple, especially in its current 0.7.1 state. You can theme it, you can write posts, you can manage some metadata, and you can add additional users to the blog. That's it. This was initially a great appeal to me and it made for a simple experience blogging.
Ghost currently has no support for plugins. It's in the works and I imagine it will be in the 1.0 release, but it's not there yet. There was no way to easily add comments or analytics or special page types or, well, anything. Ghost is what it is right now and there's not much anyone can do with that.
Themes are there and there are quite a few available and, thankfully, they're even extremely easy to make. But there are a laundry list of problems with them.
- There is no centralized way to install them. You have to do it manually. Compare this to Wordpress where you go to
wp-admin/theme-install.phpand have instant access to thousands of free themes and Ghost is really at a disadvantage
- Unlike Wordpress, you can't have a configuration page in the dashboard for your theme. So if you want to modify the social links in the footer from the theme developer to your own, you have to modify the theme files directly. Adding Disqus comments works the same way. In the end, I feel like I wrote a significant chunk of the theme I had downloaded to avoid writing a theme.
- The Ghost Marketplace is riddled with dead links
- Themes, as far as I am aware, cannot hook into the Ghost API. Looking through the theme files and some of the documentation, it looks like themes are just template files with access to a limited list of variables given to it by the controller. This means that themes are very limited in what they can do.
Ghost updates are currently very poor. To update, you stop your Ghost instance, download the update, copy your old content folder and config files, run
npm install (which would update assets and run migrations), and then restart it. This is not something I believe a non-developer would be able to do and you for sure wouldn't be able to do it without SSH access (something that might not be available to you for shared hosting).
Themes are even more difficult. Again, there is no built-in mechanism for updates and with the way you have to edit themes to make them usable, something like a simple
git pull doesn't really work.
Those screenshots and that amazing intro video from the Kickstarter don't exist in Ghost, at least not yet. Perhaps some day, but not now.
As I alluded to earlier, installation is not as easy as other systems. Ghost's instructions are simple to follow, but without access to the command line, it would be impossible to install. It requires npm, which most servers do not come pre-installed with (compared to PHP which most do). It requires running it via npm, which is another thing that you need command line for. Modifying any part of the install requires modifying files. It's simply painful.
So why Wordpress?
I went with Wordpress mostly for the support. It is often updated, there is a large community that is making useful plugins and beautiful themes, and there are a ton of resources out there for making it behave the way I want it to. After figuring out using a Markdown editor and syntax highlighting, it seemed like a good fit.
Ghost is a young platform. It's initial release was only two years ago and we still have not seen a 1.0 release. It's promising, it's open source and well liked by the open source community, and it has a vision. I fully expect it to be one hell of a blogging platform someday. But that day isn't today, unfortunately. It's not ready for the prime time, and for that reason I have switched to Wordpress.