Skip to content
BuddyPress

Add ActivityPub Federation to Your BuddyPress Community in 10 Minutes

· · 11 min read

Threads has 350 million users on ActivityPub. Mastodon has around 10 million. Lemmy, Misskey, Pixelfed, PeerTube, and a growing list of platforms all speak the same open protocol. Every post published on any of those networks can flow to every other one, and starting today, your WordPress community can be part of that network.

This is the structural advantage that Circle, Skool, and Mighty Networks cannot offer. They are closed systems. Your members can only interact with other people inside those walls. A BuddyPress community built on WordPress can federate, meaning your posts appear in Mastodon timelines, Threads feeds, and Lemmy discussions, and people on those platforms can follow, reply to, and boost your content without ever visiting your site.

This tutorial walks through the full setup using the WordPress ActivityPub plugin, which is free, actively maintained, and implements the W3C ActivityPub standard. The setup takes about 10 minutes. No API keys, no paid tiers, no third-party services required.

What ActivityPub Is (and Why It Matters for Communities)

ActivityPub is a W3C standard protocol for decentralized social networking. Think of it like email: you can have a Gmail address and I can have a Fastmail address, and we can still email each other because both services speak the same protocol. ActivityPub does the same thing for social activity, posts, follows, likes, replies, across different platforms and servers.

When your WordPress site implements ActivityPub, it becomes an actor in the fediverse. Each author on your site gets a fediverse handle that looks like @[email protected]. Anyone on any ActivityPub-compatible platform can follow that handle and see your new posts in their timeline. Replies from fediverse users appear as comments on your WordPress posts.

For a BuddyPress community, this creates a flywheel. Your on-site members engage in private groups and forums. Your public posts federate out to the broader open social web, bringing in new people who discover you through Mastodon or Threads. Some of those people join your community. The cycle repeats.

What You Need Before You Start

The prerequisites are minimal. You need a WordPress site with a valid SSL certificate (HTTPS), BuddyPress installed and active, and the ability to install plugins. Your site needs to be publicly accessible, the ActivityPub protocol requires that other servers can reach your site’s well-known endpoints to discover your actor profiles.

You also need WordPress 6.0 or higher and PHP 7.4 or higher. Both are standard on any modern host. If you are on a local development environment that is not publicly reachable, federation will not work until you deploy to a live server.

Step 1: Install the ActivityPub Plugin

Go to Plugins → Add New in your WordPress dashboard. Search for ActivityPub. The plugin you want is simply called ActivityPub and is maintained by Automattic. It has over 30,000 active installs and is updated regularly. Install and activate it.

If you prefer WP-CLI:

wp plugin install activitypub --activate

After activation, you will find a new ActivityPub section under Settings in your admin menu.

Step 2: Configure the Plugin Settings

Open Settings → ActivityPub. The settings page has three main sections: Actor Mode, Blog Profile, and Post Settings.

Actor Mode

This controls who gets a fediverse identity on your site. There are three options:

  • Blog, one shared account for the whole site, @[email protected]
  • Authors, each WordPress user gets their own fediverse handle
  • Both, the site has a shared account and each author also has an individual one

For a BuddyPress community, choose Both. This gives your community a single followable identity for people who want site-wide updates, and gives individual members their own handles. A member with a WordPress account at yoursite.com becomes @[email protected] on the fediverse.

Blog Profile

Set the name and description for your site’s shared fediverse identity. This is what people see when they search for your site on Mastodon or Threads. Use the same name as your community. Add a short bio that describes what your community is about. Upload an avatar, this will display in fediverse clients.

Post Settings

This controls how your posts appear when federated. You can choose to send the full post content or just an excerpt with a link back to your site. For SEO and engagement, sending an excerpt plus link is generally the better choice, it drives traffic back to your site and prevents your full content from appearing without context in fediverse clients.

You can also configure which post types federate. By default, posts and pages are included. If you are using a custom post type for BuddyPress content, you can enable those here. For most setups, the default is fine to start.

Step 3: Verify Your Actor Endpoints

Once the plugin is active and configured, your site exposes several well-known URLs that the fediverse uses to discover your actors. Test these to make sure they are responding correctly.

Visit https://yoursite.com/.well-known/webfinger?resource=acct:[email protected] in your browser. You should get a JSON response that looks something like this:

{
  "subject": "acct:[email protected]",
  "links": [
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "https://yoursite.com/wp-json/activitypub/1.0/blog"
    }
  ]
}

If you get a 404 or an empty response, check that your WordPress permalinks are set to something other than Plain (Settings → Permalinks → Post name works well). The plugin requires pretty permalinks to function.

Also visit https://yoursite.com/@yourusername, this is the profile URL for an individual author. It should return a JSON-LD ActivityPub Person object. If it renders as a normal HTML page instead, you may need to flush your rewrite rules by going to Settings → Permalinks and clicking Save Changes without changing anything.

Step 4: Follow Your Site from Mastodon

Open your Mastodon account (or create one on any instance, mastodon.social is the largest). In the search bar, type your site’s fediverse handle: @[email protected]. Your site’s profile should appear in the results. Click Follow.

Now publish a post on your WordPress site. Within a minute or two, it should appear in your Mastodon home timeline. If you chose the excerpt option in Step 2, you will see the excerpt with a link back to your site. If you chose full content, the entire post body appears inline.

This is also how your members can verify their own accounts work. Each WordPress user with the Author role or higher gets their own handle. They can search for @[email protected] from any fediverse client and follow themselves to confirm federation is working.

Step 5: How Threads Discovers Your Content

Threads joined ActivityPub federation in late 2023 and expanded it through 2024 and 2025. As of 2026, Threads users on most accounts can follow external ActivityPub actors and see their posts in the Threads feed.

The discovery path on Threads is the same as on Mastodon: search for your handle, follow it, and posts appear in the feed. The key difference is that Threads has a much larger user base and a more algorithm-driven feed, which means posts from your site that get engagement on Threads (replies, likes, reposts) can get pushed to people who are not yet following you.

To maximize Threads visibility, write post titles and opening paragraphs that work as standalone social objects. The excerpt that federates is typically the first 500 characters of your post content or the excerpt field if you fill it in. A strong hook in the first line gives people a reason to follow the link.

Threads does not currently federate replies back to external sites, that is, a reply on Threads to your federated post will not automatically appear as a comment on your WordPress post. This is a known limitation of Threads’ current ActivityPub implementation and may change as their federation support matures.

What Federates with BuddyPress (and What Does Not)

The ActivityPub plugin federates standard WordPress content types: posts, pages, and custom post types you explicitly enable. Here is how that maps onto a typical BuddyPress community setup.

What Federates

  • WordPress blog posts published on your site
  • Member profile posts if you enable the Author actor mode and members have the right role
  • Custom post types (courses, forum topics if you wire them up explicitly)
  • Post updates, if you edit a post, an Update activity is sent to followers
  • Post deletion, a Delete activity is sent when you delete a federated post

What Does Not Federate

  • BuddyPress activity stream items (status updates, friend connections, group joins), these are not WordPress posts and are not natively picked up by the ActivityPub plugin
  • Private groups and private forum threads, these stay private by design
  • Direct messages between members
  • BuddyPress notifications
  • Comments left on your site by fediverse users via reply, this requires the ActivityPub plugin’s companion plugin, Enable Mastodon Apps, or a custom webhook handler

The key thing to understand is that ActivityPub on WordPress federates your published content, not your community’s private social graph. Think of it as your public broadcast channel on the open web, not a full replacement for the member experience inside your community.

Enabling Fediverse Replies as WordPress Comments

The ActivityPub plugin does support incoming replies as comments on your posts. When someone on Mastodon or another fediverse platform replies to one of your federated posts, that reply can appear as a comment on the WordPress post, attributed to the fediverse user with a link to their profile.

This feature is enabled by default in recent versions of the plugin. You may want to set these comments to require moderation approval before they appear, since they come from external users you have not vetted. Go to Settings → Discussion and check the option to hold comments for moderation. You can also use BuddyPress’s existing moderation hooks to apply your community’s rules to incoming fediverse replies.

BuddyPress-Specific Configuration Tips

Give Members Fediverse Handles via Profile Fields

Once the ActivityPub plugin is active in Authors mode, every WordPress user with publishing capability gets a fediverse handle. For BuddyPress communities where members sign up as Subscribers by default, you will need to decide at what trust level members get a fediverse identity.

One approach: promote members to Contributor role after they reach a certain activity threshold (using BuddyPress profile completion or a gamification plugin). Contributors can publish posts and get a fediverse handle. This creates a natural progression, new members participate inside the community, established members get a public fediverse presence.

Add the Fediverse Handle to the BuddyPress Profile

Display each member’s fediverse handle on their BuddyPress profile so other members can follow them from external platforms. Add a custom profile field in BuddyPress (Users → Profile Fields) and populate it automatically using a small action hook:

add_action( 'bp_before_member_header_meta', function() {
    $user = get_userdata( bp_displayed_user_id() );
    if ( ! $user ) return;
    $handle = '@' . $user->user_login . '@' . parse_url( home_url(), PHP_URL_HOST );
    echo '

Fediverse: ' . esc_html( $handle ) . '

'; } );

This drops the member’s fediverse handle into their profile header. Add CSS to style it to match your theme.

Federation and Private Communities

If your BuddyPress community is fully private (all content behind a login wall), federation still works for any posts you publish on the public-facing blog or news section of your site. The ActivityPub plugin respects WordPress visibility settings, only published, public posts federate. Private posts, password-protected posts, and draft posts do not.

This makes the pattern clean: your community’s internal discussions stay private, your public announcements and blog posts federate to the open web. Members get the benefit of both.

Known Limitations in 2026

A few things to be aware of as you set this up.

BuddyPress activity stream items do not natively federate. The ActivityPub plugin works at the WordPress post level. Status updates, friend connections, and group activity in BuddyPress are stored differently and are not automatically picked up. Building a bridge between BuddyPress activity and ActivityPub outboxes is possible but requires custom development.

Federation is asynchronous. When you publish a post, the plugin queues delivery to followers. Depending on your server load and the number of followers, delivery can take anywhere from seconds to several minutes. This is normal behavior across the fediverse.

Large follower counts require queue processing. If your site gets thousands of fediverse followers, the delivery process can create load on your server. The plugin uses WordPress’s built-in cron system for delivery. For high-follower accounts, setting up a proper cron job (rather than relying on WP-Cron) improves delivery reliability. Add this to your server’s crontab:

*/5 * * * * php /path/to/wordpress/wp-cron.php > /dev/null 2>&1

Threads’ federation is still expanding. As of mid-2026, Threads supports following external actors and seeing their posts in the feed on most account types. Full two-way federation (Threads replies appearing as WordPress comments) is not yet universally available. Check the Threads team’s ActivityPub status page for the current state.

Image handling varies by client. Featured images on your WordPress posts will federate as image attachments. How they display depends on the receiving client. Mastodon shows them as media attachments. Threads may show a link preview. Some clients show nothing. Write your excerpts and post content to work even without an image.

Why This Matters Strategically

The fediverse is not a niche anymore. Between Threads’ adoption and the continued growth of Mastodon and Lemmy, ActivityPub-compatible platforms collectively reach hundreds of millions of users. More importantly, those users are choosing decentralized platforms specifically because they want to avoid walled gardens.

Your BuddyPress community, built on WordPress you own, is structurally aligned with that value. You own your data. Your members own their accounts. Your content lives on your domain. Adding ActivityPub federation extends that thesis: not only do you not need to be on someone else’s platform, you can reach the users of those platforms directly without giving up ownership.

Circle cannot offer this. Skool cannot offer this. Mighty Networks cannot offer this. They are all closed systems by design. The federation capability is not a feature they can easily add, it would require them to give up the data control that is central to their business model.

For communities built around open knowledge, open source projects, education, journalism, or any topic where the open web matters, this is a genuine competitive advantage. Your community grows through the open social web while remaining entirely under your control.

Optional: Enable Mastodon App Compatibility

The ActivityPub plugin team also maintains a companion plugin called Enable Mastodon Apps. This plugin exposes a Mastodon-compatible API on your WordPress site, meaning members can interact with your community using any Mastodon client (Ivory, Mona, Elk, Phanpy, and others) while the data lives on your WordPress server.

This is a more advanced setup and is genuinely experimental as of 2026, but it points toward a future where your community is fully accessible from the fediverse client of each member’s choice. Worth watching if client-side freedom matters to your community.

Summary: What You Shipped in 10 Minutes

  • Your WordPress site and each author on it now have discoverable fediverse handles
  • Every public post you publish federates automatically to all followers across Mastodon, Threads, Lemmy, and other ActivityPub platforms
  • Replies from fediverse users arrive as WordPress comments, moderated by your existing rules
  • Your community’s private groups and forums remain private
  • You own all of this, no third party controls your actor profile or your follower list

The plugin is free, the protocol is a W3C standard, and the setup requires no external services. If you are running BuddyPress and have not added federation yet, there is no reason to wait.

If you want to go further, federating BuddyPress activity stream items, building a custom actor for your community’s groups, or connecting your forum threads to Lemmy discussions, that is custom development territory. We build those kinds of federation bridges on top of BuddyPress. Get in touch if you want to scope what is possible for your specific community setup.