Back to a CMS
This blog was earlier based on static pages generated by Gatsby. Compared to other static site generators such as Jekyll, Hugo, etc, I loved Gatsby's use of React and Webpack to deliver the entire site including all pages in one go. The most recent version of Gatsby has even cooler features that enable progressively loading pages.
I've been blogging for a very long time now. Coming from a feature rich Wordpress experience, static pages are quite limited in features. From analytics, I could also see that people were interested in additional features such as browsing articles by category (for e.g. Tech), a feature that wasn't available in Gatsby out-of-the-box at the time.
But the main reason for moving to a CMS is ease of content creation on mobile. I often blog when I'm travelling or unable to sleep. With the Gatsby set up, I would compose article markdown files on my phone with the WriterP app. Then I'd actually build and push the static pages on my rooted phone in Termux and finally push the update to Heroku. This worked fairly well but was time consuming and led to me blogging less frequently. I also required certain posts to be private, something that isn't possible with static sites/Github Pages/etc.
Wordpress solves most of these issues but it's a bit of an overkill. I was also extremely happy with the minimalist Gatsby theme I was using, but no Wordpress equivalent existed.
Finally, I found some free time on Sunday to setup a tiny machine on Google Cloud Platform (free $300 credit) and run a Ghost instance in Docker. This uses a SQLite db, so backing up or porting is super simple. Porting the Gatsby Lumen theme to Ghost was also super simple. Made some changes to the typography (Roboto font <3). Lastly, Ghost has a companion Android app Quill that works fairly well.
Ghost is an extremely simple CMS. I chose it for unusual reasons though. I was also evaluating it for being the base of a mostly-static website with admin features. I don't see Ghost competing with the likes of WordPress any time soon, and I have to say it's quite underwhelming. But for this blog and it's unusualness, it worked out just fine.
Next, I'd like to make this blog serverless!