ActivityPub Plugin

Currently this is not supported, but it is in our roadmap and we plan to work on it over the next 2-3 months.


Can these roadmaps be publicly accessed, like on GitHub?


Yes, I will post an update here shortly. (The roadmap for the features added to date is a couple of dozen posts earlier in this topic.)


Right, so here’s what we have planned for the plugin for the next 2-3 months:

  • improve the plugin’s performance (with no user-facing changes)
  • add better UI elements to an ActivityPub-enabled category in Discourse
    • this means including more details about the category’s ActivityPub stats, as well as an easier flow for users wanting to follow the category in their ActivityPub client
  • allow Discourse categories to follow external actors
    • this would enable ActivityPub content to be synced to a Discourse category, this includes DIscourse-to-Discourse syncing via ActivityPub, i.e. a category in Discourse site A can follow a category in Discourse site B (where both sites have the plugin enabled and configured as appropriate)
  • bug fixes and improvements to existing functionality
    • handling avatar sync issues and edits of AP-enabled posts by other users (staff, etc.)
    • if possible, addressing current limitations to author changes and wikis

This could be an incredible development (or at least the start of something incredible :-). Right now discourse instances are maybe the highest quality online meeting and discussion places on the internet but they are all separate islands. Some sort of federation among them and maybe with other type of servers (when it makes sense) would open a new window. Watching this with some excitement!


Just to let you guys know, we just merged the PR that allows a Discourse category to follow any actor in the fediverse, including other Discourse categories. Yes, that means you can now federate a category between two (or three, or more) Discourses. There’s a few more PRs in the pipeline as part of this phase, but that was a big one.

Here’s a video me federating across two Discourse instances and a Mastodon instance running on my computer


I’m hopeful for assigning activitypub actors by tag as opposed to category. I think this would also work through chat-integration plugin support, plus that would allow further content filtering.

Another interesting idea would be to put every activitypub post into a queue for admin and mod approval before it goes live. This would be great if it could allow a group to confirm whether the topic was ready for crossposting. Same could apply to replies, rather than auto-posting them from the fediverse back into the forum.

Thanks either way for working on this awesome plugin.


Since this call if for ActivityPub software, maybe there’s a category here on Meta that we could federate with Discourse - SocialHub :slight_smile:


We’ve been enjoying the plugin, but there’s a bug in the current version between the excerpt maxlength and the link to forum. If the excerpt maxlength hits in the middle of a link, the “Discuss this on our forum” link gets a weird target:

For example:

This gets a final forum link:

I’m not conversant in Ruby, but I’d guess the code to crop the post at maxlength should check to make sure it’s not in the middle of a link before adding the “link to forum” end.


I note that as of commit fb83e554fd the wiki restriction appears removed, and that at this point the restriction on changing the post owner in federated categories remains.

I don’t change post owner often but category description posts are an example that matters to me. I set up the most active category moderator to be the owner when that changes, at which point I encourage them to update it when appropriate. This is now the biggest restriction I’m aware of that is keeping me from implementing this.

I recognize the model mismatch between Discourse and ActivityPub that creates this concern. Would it make sense to implement some privileged (admin?) action “defederate this post” that would send a delete activity for the post if it has been federated, mark it never to federate, and then allow owner change?


I hear your use case here, but I don’t see this as super high priority at the moment. For now, I’d like to focus our efforts on fine-tuning the Discourse-to-Discourse sync feature, I think that is going to require a fair bit of attention over the next few weeks.

That’s a good find, thanks for reporting the issue. We’re going to look into it.

1 Like

Will this “backfill” from the linked ActivityPub actor?

Populating a Discourse category with advisory notices already posted to Mastodon.


Backfilling is not supported yet. I’d like to support it especially for the Discourse-to-Discourse federation scenario. It might be a little bit trickier to do for the use case you described.


It looks like there will be issues with non-Latin usernames in Article mode. Looks like the username needs to be encoded?


Seems like in a fluctuating network environment, a post may be received multiple times.


@angus should have posted a few ones since the initial post, but they do not seem to appear at all in my timeline, without any error on the Discourse.

A couple of days ago I used a shared draft before posting, but the message did not appear in Mastodon. So I thought it would be related to a bug with shared drafts, and today I posted directly to a new topic, but although the post was supposed to be sent to the Fediverse at 13:18 CET, nothing appears – so not boostable. :thinking:

Plugin version


Error log

Finally appeared:

(Note that a fix that would resend the latest posts would be awesome)

Latest announcements

Category settings

The ActivityPub plugin has a robust logging system that will pick up most issues. First, make sure you’ve got verbose logging turned on for the plugin.

What’s the publication status of this post? (i.e. share a screenshot of the modal that appears when you click the AP icon on the post)

I assume the publication status is “published” (i.e. the icon is green)? If you had verbose logging on could you share what was logged when this was published? (something would have been logged).

1 Like

Thank you @angus, the error log is in my previous post:

Here is the post’s status:

You can see the topic here: O₄FFDEM programme is out! - Announcements - OFFDEM

1 Like

Thanks for the further detail.

Only admins can view logs on an instance :slight_smile:

Could you copy the relevant logs in a PM to me? Thanks.


Hi folks, thanks so much for the excellent work you’ve done to get this concept to this point!! I began following the discussions to implement federation in Discourse many years ago now, and I’m happy to see this moving so far along.

I’ve successfully managed to federate my Discourse category by following it with my account on Mastodon. New topics in my category are available to view from my Mastodon account.

I don’t seem to be receiving Mastodon replies to my federated Discourse topics in Discourse, but top-level Toots from my followed Mastodon account seem to appear as new topics just fine. Is this presently the expected behavior?

I read through this thread and I don’t think that I explicitly saw anything about federating replies to topics.

Here is a screenshot of my category ActivityPub settings.

Is this at all related to the security settings for the category? Right now I have it that everyone can see topics, but only admins can create and reply to them.

Thank you!