Ghost's ActivityPub Integration Feels Half-Baked
Their work is far from over, but lack of development and progress is leaving me wanting.
Before people start calling for pitchforks, let me say this: I love Ghost, and I think they've done some great work with embracing the Social Web. To see such a massive publishing platform do this is nothing short of impressive, and I'm grateful for the work the Ghost team has done.
It's been a little over a year and a half since the Ghost publishing platform adopted the ActivityPub protocol to enable federated subscriptions and interactions. While much fanfare was made about the release, subsequent development feels like it has stalled, with minimal visibility regarding future development.
As someone who bought-in to the platform after these promises were made, I've been dogfooding the Social Web integration daily, switching my personal site over to Ghost completely. While there's much to be happy about, I can't help but feel that there are still many, many feature gaps. Today, I want to talk about what I feel Ghost is still missing.
Social Integration
Social aspects for Ghost still feel lacking in some ways, which is more than a little bit ironic, considering that ActivityPub is really meant to add social capabilities to the mix. There are several areas where I feel this really breaks down still.
Federated Subscriptions
This was supposed to be a big selling point for Ghost, and was even part of their earlier product mockups. You could subscribe to a publication in the traditional way, through newsletter memberships, but you could also use federation to subscribe from your Ghost dashboard, as well as other parts of the Fediverse.

Technically, you can do that. However, discovery for this feature on the front end of any Ghost site is practically non-existent. I have ActivityPub turned on, and if you visit my site, there is no obvious way to figure out my handle and subscribe to me.

Of course, I can tell you my handle (@sean@deadsuperhero.com), but this limitation is bad UX. Even a subscription form that redirects you to your instance dashboard to subscribe would be an improvement. Which also leads to the question: why can't followers also be considered Subscribers / Members? It makes a lot of sense to put these things together.
Social Interactions
Another weird thing involves how social interactions work in Ghost: you can't see them on my site. The only way I can access them is through Ghost's dashboard, under the Social tab. If I click on any of my articles from there, they show up.
Here's a post on my site:

Here's the same post in the dashboard:

I actually reached out to the Ghost team a while back about the possibility of migrating We Distribute over to Ghost, and this was one of the main things I asked about. Is there an officially, supported way to embed interactions directly into the frontend, and possibly also integrate status updates as well?
It wouldn't be possible (yet) to bring in replies from the AP integration to the frontend of your site. However, if you can share more about what you're wanting to do, I can write up a feature request for our team!
They got back to me, and effectively said this wasn't supported. As someone that really appreciates being able to highlight community actions for everyone to take part in, this felt like a missed opportunity.

For comparison, this is something that's pretty well-supported in ActivityPub for WordPress. I just believe that social interactions should be front and center on publication sites, especially because it can encourage further interaction across the network, and help build online communities around sites that publish!

Social Features
In terms of the social features that Ghost currently offers, the landscape feels pretty barren. Compared to Mastodon, Ghost is currently offering only a fraction of the same features.

These are basic table stakes for interfacing with the Social Web:
- Mentions
- Hashtags
- Quote Posts
- Keyword / Tag Filtering
- Full-Text Search
- Content Warnings
- Polls
- Multiple Image Attachments on posts
- Video Thumbnails
- Privacy Scopes
- Lists
- Migration of User Accounts
Granted, I'm not expecting Ghost to copy each and every feature that every other Fediverse platform has. It's just that the lack of all of these things combined leaves for a very limited social experience, which could lead to the social feed being an afterthought, and therefore underutilized by people using Ghost. As someone that really wants an all-in-one place for my Fediverse identity, this is a bummer.
Mastodon API
At this point, this is more of a nitpick over a "nice to have" feature, but it's something I actually depend on. Admittedly, it depends on having the social features I just described.
To explain it briefly: the Mastodon client API is very, very popular in the Fediverse. So much so that a lot of Fediverse platforms have implemented it for themselves, allowing them to use a wide range of social clients on Web, desktop, and mobile. This is great, because it means I can just use my existing apps to post status updates, read notifications, and interact with people.

As an added bonus, I'm able to leverage Mixpost, which is like an open source, self-hosted version of Buffer. It supports the Mastodon API, so I can go through the process of scheduling posts of status updates without having to do it all on-the-fly. I can use it to post status updates to the Fediverse with WordPress, even.

I asked Johnathan O'Nolan, one of Ghost's founders, about the possibility of implementing something like this, and he countered with the idea that maybe Ghost should just have a dedicated mobile app for the social stuff. Now, I don't expect or demand anyone from Ghost to implement this, but it would seem like having this capability would only strengthen their story for social media teams to consider using that part of Ghost regularly.
Is Development Still Happening?
My biggest concern out of all of this is that the Building ActivityPub blog seems to have gone silent some months ago. It gives the impression that, once the feature was released, everyone just packed up and went to go work on other things. Which, y'know, is fair in a small independent startup.
The problem here is a lack of insight and transparency. There really isn't a way to get good information on what Ghost is currently working on, or what their current roadmap entails. From the outside looking in, one can get the impression that there's no further development happening in this area.
Where to Go From Here?
Despite everything, I'm still sticking with Ghost for my personal site. My hope is that maybe some of the Ghost team will see this, and take some of the feedback to heart. I still think it's a phenomenal publishing platform, and I want to see it succeed over alternatives such as Medium, SubStack, and even WordPress. I just think that their Social Web offering needs a lot of love.
For We Distribute, I'm still figuring out what I want to do. My long-term goal involves finding a Fediverse-first solution to migrate to, as the integration I have for WordPress sometimes feels like a far cry from what I'm dreaming of. It works, but WordPress itself can be very frustrating. I still maintain that a good publishing system for the Fediverse ought to be built for the network first and foremost, rather than bolted on to a CMS with an integration.
Even so, the ActivityPub for WordPress team is still doing astonishingly good work, and is updating their feature offerings through leaps and bounds. Maybe if I hang in there, it will get to where I want it to be.
I'm also looking at Bonfire, which has article capabilities, but would require a lot of custom development to make something even close to what I have with Ghost.