Why do we have different activitypub implementations for different applications?


I’m still trying to grasp my head a bit around activitypub.

As I understand it, activitypub can basically be thought of as a mail server, that defines how messages should be sent and received between different servers to create a federation. Afterward, activitystreams is basically the standardised “language” that should be used to communicate messages between the different servers.

One thing I am curious about, is how come we have ended up with so many applications having their own activitypub implementation? Couldn’t you theoretically have a stream of messages coming to the inbox and then have applications (like lemmy, mastodon) subscribe to the inbox messages they are interested in to them and send outgoing messages to the same outbox? Basically, I’m wondering if mastodon, lemmy etc. can’t listen to the same inbox and send messages to the same outbox. Activitypub as I understand it is not really tied to a particular application, so how come it is so in practice? How come we do not have a single activitypub provider that we sign up to, and then have the applications plug in to that provider?

I am not asking this to be provocative, I am curious about the history of activitypub and also trying to understand if I "get’ activitypub as a protocol.


they could indeed work like that, but they aren’t like that, primarily because the adopters of activitypub all happened to be designed and built monolithically. the other big reason is that there still isn’t a reference generic activitypub server that fulfills the role of the mail server. there’s some efforts from the community like Vocata which aim to be more like that, but the biggest projects seemingly have no interest in rearchitecting their projects to be clients rather than integrated client+server offerings.


Okay that makes sense!

Do you know how mature Vocata is today? Can I start building applications using it as a backend?

1 Like

it is indeed a challenge to implement a generic AP server :wink:

There are already very few AP servers that support the C2S protocol at all and even fewer that process generic objects.

That’s exactly what I’m trying to do with rdfPub . I am currently refactoring and stabilizing hardcore. (before and after my official job :slight_smile: )

I finally have a good solution for a development version on the net including https.

I would be happy if someone would build an application based on rdf-pub. However, I do not yet have an S2S implementation. I would like to get the C2S stable first.



@marcc this discussion will also concern you

do you want to implement an application that is hosted on a server and can be accessed via a web browser or as an app on a device such as a smartphone?

That’s what we are trying to do with ActivityPods. Basically, the pod provider takes care of the whole ActivityPub mechanism (as well as the storage, authentication and all those annoying stuff), and applications can focus on what they want to do. We have implemented the full client-to-server protocol, so applications can easily post to the outbox, and watch the inbox. We plan to release a Mastodon-compatible app in a few months, see the end of this article for the details.

1 Like