Moving to Ghost

Recently, I moved my blog to a self-hosted Ghost instance. This finally ended my long search for the ideal solution for hosting a blog.

Some things I've tried include:

A Zola-generated static site: This didn't work too well, mostly because the customization language was not very good.

A Pollen book, generated as a static site: I was really excited about using Pollen, mostly because I always thought Racket/Scribble was the perfect "web template" technology stack. Unfortunately, these hopes didn't pan out...

  • Despite using Racket's language system, #lang pollen files did not behave in the way I expect: they weren't self-contained programs that used Racket's excellent module system to import other files. Instead, the whole "book" needed to be encoded implicitly in a directory structure
  • The "book" structure is very opinionated, and getting it to generate a proper blog was difficult.
  • Nothing was properly documented. Detailed tutorials are no replacement for references.

A hosted GitBook website: This at least got me a nice WYSIWYG editor and easy ways of embedding things like "hints" and images without worrying about hosting. Unfortunately, GitBook is not made for blogs. I actually prefer posts to be organized by category rather by time; what I really miss are comment sections and RSS feeds or other "subscription" means.

Just use Substack: This has most of what I need. I especially like the integrated email subscription system and sharing a community with other Substack users. But:

  • I don't quite like Substack's typography, and it's not possible to really customize it
  • Overall, I prefer the freedom and decentralization of self-hosting

Ghost, on the other hand, is basically self-hosted Substack, with very easy customization. This makes it easy to eventually add stuff like multilingual support (once I get around to writing in Chinese...) and integration with custom code.

Subscribe to nullchinchilla's blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.