A common problem that many Discourse users face is the inability to show an aggregation of all the interest groups that they are subscribed to. There’s no easy way to consume content from multiple Discourse instances in the form of a central and social user feed. Centralised platforms like Reddit get around this by having a single login for all communities and an aggregate feed of all the communities shown in a single stream on the reddit.com landing page. This latter feature is what we’d like to replicate in Discourse by means of the ActivityPub protocol.
For example, Person A frequents multiple Discourse instances: one for politics, two for hobbies, one for their local neighborhood forum but has no way to consume all relevant content in one single feed. In comparison, if you have joined multiple Facebook groups or Reddit subs, the most relevant posts already show up in your feed.
We could prototype an MVP by enabling the following features through a Discourse plugin:
Generate an ActivityPub feed on demand (for every page that already has an RSS feed)
Similar to adding
.rssto the url, this will allow the fetching of content using the AP protocol on requesting the right endpoint.
We may even be able to enable this for private content by appending user api keys to the url.
Let forum admins enable ActivityPub (outgoing) on a per-category basis or keep it default-on?
(I believe @Falco had some thoughts here)
Figure out a way to consume this content on a Discourse forum / Mastodon feed (incoming)
We definitely need to start small so at first, we need to decide on a small, feasible set of features that will go into the first iteration. I’ve been going through the ActivityPub protocol but I’m not too familiar with the inner workings of it yet. Therefore, I’m inviting others who have shown a lot of interest in this to the discussion (@Falco, @hellekin, @merefield) to help us build a feasible spec for the first iteration and recommend changes for the spec above.