Photo by Becca Lavin / Unsplash

Ghost in the Machine

Aug 6, 2025

An ex-boss of mine instituted a regular meeting called This Week I Learned (TWIL for short). Every TWIL, each team member would bring at least two things that they had learned in the past week, one from work and one non-work item. The meeting is designed as a low pressure team building exercise, but when your team is filled with varied and curious individuals, it can be a gold mine of tips and tricks.

It was in one of those sessions last year when that same ex-boss mentioned a new CMS project he had come across called Ghost. It was billed as an open-source answer to Substack allowing creators to easily publish content online and collect revenue via memberships. At the time I was intrigued but skeptical. Making software for a living has made me wary of low-code publishing platforms - I inevitably find myself butting against the limitations of the tooling wishing I could just write the code. This is particularly true of Wordpress, which I've used for (bad) personal websites in the past and had to maintain professionally as well. While I'm sure the underpinnings of the platform are solid, the plugin hell that makes every install a special snowflake of confusion has made me deeply mistrustful of it. Special shoutout however to Webflow which has actually managed to thread the needle between easy to use and deep enough that I can do what I need to do, but it is much more than I need for personal projects.

In an effort to stay more organised, remember the things I've done and keep track of the things I'm supposed to do, I started using Obsidian, the open-source response to Notion. While it worked really well at first I began gradually falling out of the habit and when I found myself still jotting down disconnected sentences in a note entitled 2025-01-30, in June, I realised I had lost that battle. But I still wanted to keep a record of things that I had done, especially personal projects that you hack away at for a couple days, get done, leave for a year then come back to having forgotten most of your hard fought learnings. Perhaps the way to keep a good record was an audience (or in this case at least the concept of one). I had actually dabbled with publishing my work in the past, even once being featured on Hackaday. I kept Ghost in the back of my mind.

Cut to the present and I have a shiny new server running Proxmox, a bunch of old projects to migrate and a bunch of new projects unlocked by my more powerful hardware. What could be a better way to keep track of what I have done than publishing it all in a blog? And what better tool to try out than the open-source publishing platform my ex-boss shared during This Week I Learned?

For installation I turned once again to my friends at the Proxmox VE Helper-Scripts who have a one line install script to get the latest Ghost running on my server. Once installed, the script spit out a link which opened up the Ghost admin page where I could create my admin account and customise my site.

The setup wasn't without a few first timer hiccups though. Once I pointed my domain at the Ghost install and modified the Ghost config to expect that domain, I found myself looking at the login page of my own website. Trying to enter my email address just resulted in an error. I quickly discovered that setting up Ghost for email was a critical step (in the team's defence they make this pretty clear in their documentation) as you can't login without it. Ghost has a Mailgun integration and so I created a free account (600 mails per month) and put the details into the config. Unfortunately this didn't quite work and I spent a good 45 minutes tweaking the config only to get the same cryptic error message no matter what I tried. (I had had the same problem with a legacy Laravel server that I maintain a month earlier so I was not enjoying the repeat). Eventually I found the correct incantation online and we were off to the races. I know these are only first timer problems because my partner saw my shiny new website and wanted one of her own. It took 15 minutes between buying the domain and BuiltByAnna.com being online for all to see, this time using her personal gmail for admin email seeing as she didn't want bulk newsletter sending.

So how is Ghost? So far, pretty damn brilliant. The design of the admin interface is modern, clean and intuitive but most importantly, it's fast. The post editor is exactly what I want from a blogging platform, putting very little in between me and the words on the page but giving me most of the functionality that I want. (Except for footnotes, which are supported but only if your entire post is in Markdown which means my posts are littered with parentheticals. Boo.) The theme support seems robust with a good looking set of default themes catering to different use-cases and the ability to import a .zip of any theme you find on the internet. I'm using Liebling because someone on reddit recommended it. Analytics are there, albeit somewhat minimal, but apparently improved in version 6. Memberships and newsletter sending are painless once you have Mailgun integrated. I have gotten feedback from friends that becoming a "member" instead of "subscribing" feels like a much higher bar to entry even if in practice it is just entering your name and email instead of just your email.

So it is a great platform, but the thing that interests me the most about it was something I only discovered a few days later when clicking through the menus. I've always been interested in the concept of the Fediverse, a utopian ideal of interconnected social networking platforms where you can post and follow across servers using a standardised protocol. A few of my TWIL offerings were actually ActivityPub related, and I have quietly harboured a dream of hand building my own ActivityPub implementation (I did try to read the spec once, then look for an open source library, then decide to try another time when things had matured...). And the Fediverse has been gaining traction despite its techie underpinnings: Threads has promised to federate (and started to slowly deliver), with the Automattic owned Wordpress and Tumblr making similar promises. Sadly Automattic has added more to the controversies section of their wikipedia than any meaningful federation just yet. Imagine my excitement then when I discovered the Social Web entry in the Ghost Labs documentation. Ghost is building to the Fediverse with a bunch of feature coming in the Ghost 6 release that just dropped this week.

Is the Fediverse the future? My open-source, tech loving, HomeLab owning heart says yes but my realist side says that half the world can't remember their Facebook password. But I'm in, and I will give it a good college try. So stay tuned, soon you will be able to follow me on Mastodon, Bluesky, Wordpress and your Samsung Smart Fridge.