My New Blogging Platform: Ghost

I've always enjoyed the idea of having a blog, despite nary having an idea about what I'd feel writing about. You'll find that most of my posts on here are technical in nature, since I spend long periods of time near some sort of internet-connected device.

I started blogging on WordPress, where I composed a few posts that were I thought were interesting. It turned out that my post on creating self-signed PowerShell scripts was the most popular of the bunch, and thus became the single post that I kept when I decided to use another CMS. I had always disliked WordPress, mainly due to an almost complete lack of standards or Object-Orientated programming styles.

After some research, I discovered a far more modern CMS alternative called October. It's based on Laravel, which greatly reduces the time I spend on common tasks and securing the blog. October also easily lends itself to quickly making web apps. It's been a fantastic platform, although it's grown to be too feature-rich for my simple blogging needs.

I seem to have a habit of switching blogging platforms in March, which is when I completed my switch to October CMS in 2019. You can read more about why I chose October here.

As of this writing, the core maintainers of October have created a fork called Winter CMS. Juding from early interactions with their team, I'll be switching to Winter for the forseeable future. I start almost every new project with October, and I'm heavily invested in the architecture of their CMS, themes, plugins, etc.

For the third iteration of my blog, I've decided on Ghost. I can focus on content and leave all of the fine-tuning and extra little features for larger projects. This also comes at a time where I'm splitting my personal domain, zacharyschneider.ca, into more defined pieces. I no longer conduct business under my own name, but as ByteMethod Consulting, which means I'll be moving all of the business-related content to that website. I'll likely move my CV to my "corporate profile" page on my business site too. Except for a few miscellaneous pages, all that remains is my blog, which will continue to live on my personal website.

Ghost will bring a number of improvements, for example:

  • Powerful post editor
  • Automatic SEO
  • AMP pages (with AMP Real URL from Cloudflare)
  • Future opportunities to utilize static site generators, Jamstack, Cloudflare Pages, etc...

I'm already thinking about ways to use Cloudflare Pages with the Ghost headless Content API and client-side JavaScript to fetch posts.

Prerequisites

Before I could start using Ghost as my new blogging platform, I had to write a storage adapter for Ghost v3.x so that I could still use Backblaze B2 as my cloud object storage (a fantastic alternative to Amazon's S3). I have almost zero experience in programming for Node.js (which is what Ghost's backend is, basically just JavaScript). I was able to hack together a storage adapter class over the course of a few days, and I learned a lot about server-side JavaScript. You can find my Backblaze B2 Storage Adapter for Ghost on GitHub.

There are a few other things that I will have to setup manually, since I used or wrote plugins for October to acomplish things like a Content Security Policy, comments, and setting some HTTP security headers.