Tag: ActivityPub

  • 7.1.0 — Polishing Tables

    This release is mostly made up of behind-the-scenes improvements, but one update you’ll notice right away is the refreshed Followers table. It now looks and feels much more like the standard WordPress admin tables: you can customize it with screen options to hide columns or change how many followers are shown per page, and you can now delete individual followers using inline action links. We also polished the layout by increasing information density and improving the readability of date columns.

    We’ve made migrations easier to kick off by automatically resolving account aliases and saving their ID form. That means you can now paste in WebFinger IDs, profile URLs, etc. and the plugin handles the rest, as long as it resolves to an ActivityPub profile.

    This release also fixes a long-time annoyance: unfederated posts (like those published before the plugin was activated or imported later) will no longer be sent out to followers just because they were updated. For now, we use a simple cutoff for posts older than a month, which should cover the majority of those cases.

    Coming Soon: Following Others!

    Most of the work that went into this release is still invisible, hiding behind a feature flag in Advanced Settings (you can find it by opening Screen Options in the ActivityPub settings screen).

    There’s really no functionality around it yet, beyond following accounts from other instances, as we have yet to start processing incoming posts and adding the ability to interact with them. But if you just can’t wait to show your appreciation for other accounts by following them, go wild!

    Behind the same feature flag, we’ve also added initial beta support for Fediverse Starter Kits. This lets new users follow a set of recommended accounts from a predefined list, following the format proposed by @dansup for Pixelfed. For now, only Actor objects are supporteded, but we’re hoping to expand that over time.

    Full Changelog

    Added

    • Added a first version of the Follow form, allowing users to follow other Actors by username or profile link.
    • Added initial support for Fediverse Starter Kits, allowing users to follow recommended accounts from a predefined list.
    • Ensure that all schedulers are registered during every plugin update.
    • Followers and Following list tables now support Columns and Pagination screen options.
    • The featured tags endpoint is now available again for all profiles, showing the most frequently used tags by each user.
    • The following endpoint now returns the actual list of users being followed.

    Changed

    • Follower tables now look closer to what other tables in WordPress look like.
    • Improved Account-Aliases handling by internally normalizing input formats.
    • Minor performance improvement when querying posts of various types, by avoiding double queries.
    • Set older unfederated posts to local visibility by default.
    • Step counts for the Welcome checklist now only take into account steps that are added in the Welcome class.
    • Table actions are now faster by using the Custom Post Type ID instead of the remote user URI, thanks to the unified Actor Model.
    • The following tables now more closely match the appearance of other WordPress tables and can be filtered by status.

    Fixed

    • Ensure correct visibility handling for Undo and Follow requests
    • Ensure that the Actor-ID is always a URL.
    • Fixed a bug in how follow requests were accepted to ensure they work correctly.
    • Fixed an issue where the number of followers shown didn’t always match the actual follower list.
    • Fixed a PHP error that prevented the Follower overview from loading.
    • Fixed missing avatar class so that CSS styles are correctly applied to ActivityPub avatars on the Dashboard.
    • Fixed potential errors when unrelated requests get caught in double-knocking callback.
    • Improved WebFinger fallback to better guess usernames from profile links.
    • Prevent WordPress from loading all admin notices twice on ActivityPub settings pages.
    • Removed follower dates to avoid confusion, as they may not have accurately reflected the actual follow time.
    • Stop purging Follow activities from the Outbox to allow proper Unfollow (Undo) handling.

    Downloads

    Thank you!

    Big thanks to everyone who contributed code, feedback, testing, or encouragement—this community helps make the fediverse more connected with every release. ❤️

    Update to 7.1.0, try it out, and tell us what you think!

  • 7.0.0 – I will follow you!

    Just when you thought things were settling down… boom 💥 — the ActivityPub plugin gets another big upgrade. Say hello to version 7.0.0, a release packed with new features, polish, and under-the-hood improvements to help your WordPress site federate smoother, smarter, and more securely than ever.

    Let’s dive into what’s new.

    Following the Fediverse

    We’ve added the initial building blocks for Following support — both sending and managing follow requests for remote actors. It’s not in the UI just yet (we’re rolling it out carefully), but that’s not far away. A big step toward richer, two-way federation.

    Wapuu that "follows" a Mastodon, Pixelfed and Ghost mascot.

    We’ll work with developers of third-party plugins — including those behind Friends and Event Bridge — to migrate their custom follow implementations to this new core feature. This collaboration helps ensure a consistent, reliable follow experience across the ecosystem.

    This foundational support for following is also the first step toward a full-featured reader experience right inside WordPress — something we’re excited to keep building toward.

    Refined Signature

    This release brings support for RFC-9421-style HTTP signatures, both incoming and (optionally) outgoing. That’s a mouthful, but it basically means supporting the latest standard in how we verify and send activities — including a fallback to good old Draft Cavage when needed.

    Check out the blog post to learn more: HTTP Signature Upgrades Coming Soon

    Full Changelog

    Added

    • Added basic support for handling remote rejections of follow requests.
    • Added basic support for RFC-9421 style signatures for incoming activities.
    • Added initial Following support for Actors, hidden for now until plugins add support.
    • Added missing “Advanced Settings” details to Site Health debug information.
    • Added option to auto-approve reactions like likes and reposts.
    • Added support for namespaced attributes and the dcterms:subject field (FEP-b2b8), as a first step toward phasing out summary-based content warnings.
    • Added support for the WP Rest Cache plugin to help with caching REST API responses.
    • Documented support for FEP-844e.
    • Optional support for RFC-9421 style signatures for outgoing activities, including retry with Draft-Cavage-style signature.
    • Reactions block now supports customizing colors, borders, box-shadows, and typography.
    • Support for sending follow requests to remote actors is now in place, including outbox delivery and status updates—UI integration will follow later.

    Changed

    • Comment feeds now show only comments by default, with a new type filter (e.g., like, all) to customize which reactions appear.
    • Consistent naming of Blog user in Block settings.
    • hs2019 signatures for incoming REST API requests now have their algorithm determined based on their public key.
    • Likes, comments, and reposts from the Fediverse now require either a name or preferredUsername to be set when the Discussion option require_name_email is set to true. It falls back to “Anonymous”, if not.
    • Management of public/private keys for Actors now lives in the Actors collection, in preparation for Signature improvements down the line.
    • Notification emails for new reactions received from the Fediverse now link to the moderation page instead of the edit page, preventing errors and making comment management smoother.
    • Plugins now have full control over which Settings tabs are shown in Settings > Activitypub.
    • Reworked follower structure to simplify handling and enable reuse for following mechanism.
    • Screen options in the Activitypub settings page are now filterable.
    • Setting the blog identifier to empty will no longer trigger an error message about it being the same as an existing user name.
    • Step completion tracking in the Welcome tab now even works when the number of steps gets reduced.
    • The image attachment setting is no longer saved to the database if it matches the default value.
    • The welcome page now links to the correct profile when Blog Only mode was selected in the profile mode step.
    • Unified retrieval of comment avatars and re-used core filters to give access to third-part plugins.

    Fixed

    • Allow interaction redirect URLs that contain an ampersand.
    • Comments received from the Fediverse no longer show an Edit link in the comment list, despite not being editable.
    • Fixed an issue where links to remote likes and boosts could open raw JSON instead of a proper page.
    • Fixed a potential error when getting an Activitypub ID based on a user ID.
    • HTTP signatures using the hs2019 algorithm now get accepted without error.
    • Improved compatibility with older follower data.
    • Inbox requests that are missing an algorithm parameter in their signature no longer create a PHP warning.
    • Interaction attempts that pass a webfinger ID instead of a URL will work again.
    • Names containing HTML entities now get displayed correctly in the Reactions block’s list of users.
    • Prevent storage of empty or default post meta values.
    • The amount of avatars shown in the Reactions block no longer depends on the amount of likes, but is comment type agnostic.
    • The command-line interface extension, accidentally removed in a recent cleanup, has been restored.
    • The image attachment setting now correctly respects a value of 0, instead of falling back to the default.
    • The Welcome screen now loads with proper styling when shown as a fallback.
    • Using categories as hashtags has been removed to prevent conflicts with tags of the same name.
    • When verifying signatures on incoming requests, the digest header now gets checked as expected.

    Downloads

    Thank you!

    Huge thanks to everyone who contributed code, feedback, tests, or moral support. This community makes the fediverse feel a little more federated with every release. ❤️

    Update now, test things out, and let us know how 7.0.0 works for you!


  • HTTP Signature Upgrades Coming Soon

    Ever wonder how your site proves it’s really you talking to the rest of the Fediverse? It’s not magic—it’s HTTP signatures, the digital equivalent of a secret handshake. With our next release, we’re making that handshake a lot more universal (and a little less awkward).

    Why HTTP Signatures Matter

    When you interact with the Fediverse, you want to know that the messages you send and receive are genuine. HTTP signatures are the technology that makes this possible. Every time your site sends a message, it includes a digital signature—like sealing an envelope with your personal stamp. This signature proves that your content really came from your account and that no one has tampered with it along the way. As a result, you can trust that your interactions across the network are authentic.

    A Wapuu dressed as a detective holds a sealed envelope marked with an RFC 9421 checkmark, symbolizing secure and verified communication, with a key floating nearby against a starry background.

    A Bit of Background: draft-cavage and RFC 9421

    If you’ve heard about HTTP signatures, you might have come across terms like “draft-cavage” and “RFC 9421.” These are just different versions of the rules for how those digital signatures are created and checked.

    For a long time, most of the Fediverse has used what’s called the draft-cavage-12 specification. Think of this as a set of instructions that people agreed to try out, but that hadn’t been officially finalized. It worked well enough to let sites talk to each other securely, but because it was just a draft, there were sometimes small differences in how different software used it.

    Recently, the community agreed on a final, official version of these rules, called RFC 9421. This is now the standard way to create and verify HTTP signatures. This makes it easier for sites and servers to understand each other and work together, since everyone is following the same process.

    Incoming Support for the New Standard, Out of the Box

    With this update, the plugin will support incoming HTTP signatures that use the new standard right away. There’s nothing extra you need to do. This means that when other servers use the new, official approach for signatures, your site will recognize and accept them. By making support for the new standard easy and automatic, the plugin helps move the Fediverse forward, encouraging more sites to adopt this approach and making connections across the network more reliable.

    Outgoing Requests and the Double Knock Approach

    There’s a new setting for outgoing requests, but for most people, there’s no need to touch it. This option is really for the folks who like to be on the cutting edge and want to start using the new standard for outgoing messages right away. If that sounds like you, here’s how to find it: head to the ActivityPub settings in your dashboard, open “Screen Options” at the top right, and enable “Advanced Settings.” Then, click on the Advanced Settings tab and turn on “Use modern signature format for Fediverse communications.”

    But don’t feel any pressure—leaving this setting off is perfectly fine. The plugin already handles incoming messages with the new standard out of the box, and we’ll automatically enable outgoing support for everyone once the wider Fediverse is ready. For now, this is just an option for early adopters.

    If you do turn it on, the plugin uses what we call the “double knock” approach. It’ll try the new standard first, and if the other server isn’t ready for it, it’ll automatically fall back to the older method. So, you can experiment without worrying about breaking communication with anyone.

    Improved Verification for Existing Signatures

    The plugin also brings improvements to how it handles signatures that use the older method, especially those using the hs2019 algorithm. Now, when a signed message arrives, the plugin fetches the sender’s public key and uses it to determine the correct way to verify the signature, following the specification more closely. This means more reliable verification and fewer errors, making your experience smoother and more predictable.

    Looking Forward

    With this update, the plugin helps move the Fediverse toward a shared standard for signing and verifying messages. By supporting both the new standard and the older method, you’re making it easier for everyone to communicate using the same agreed-upon approach. There’s no change in security, but you’re part of making the network more consistent and helping the community take the next step forward.

    We hope this explanation helps clarify these technical changes. If you have any questions about HTTP signatures or how our plugin interacts with the Fediverse, please don’t hesitate to reach out in the comments below.

  • What we shipped so far in 2025

    A Wapuu holding a Fediverse-Ball while sitting on a spaceship.

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.


    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    A screenshot of the onboarding launchpad.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse experience


    Move

    The Move Activity is used by Mastodon to migrate accounts to different servers — and can also be used for domain or username changes.

    In the WordPress ecosystem, one of the main motivations for implementing Move was to support changing the domain of a WordPress blog — a common scenario for WordPress site owners.

    We’ve built a solid foundation in the plugin to both send and receive Move Activities. However, because Move is not yet widely adopted across the Fediverse, we’ve decided to pause further work on this feature until there is broader ecosystem support.

    Account migration remains a crucial capability for a healthier, more portable social web. If you’re interested in the broader context and challenges around this, we recommend watching Cory Doctorow’s keynote from the June FediForum:

    We’ll revisit this as the standard matures and more servers implement consistent handling of Move.

    More details:

    👉 GitHub — Move Milestone


    Outbox

    Earlier versions of the plugin supported only the federation of custom post types, sending all messages in one bulk.

    That approach works up to about 1000 followers, but does not support retries, logging, or error handling.

    To support larger blogs or news sites — we needed a more robust system.

    We now have mechanisms to:

    • Federate activities to more than 1000 followers.
    • Use a staggered delivery system that prioritizes servers.
    • Provide a stable and scalable architecture.
    • Support retries and error reporting.

    This improved Outbox system also makes it easier for third-party plugin developers to federate their own content types in a reliable and scalable way.

    More details:

    👉 GitHub — Outbox Milestone


    Changelogs

    These are just the major milestones. If you’re interested in everything we ship, be sure to subscribe or follow the blog — we publish detailed changelog posts with every new plugin release, listing all new features and improvements.

    ActivityPub for WordPress
    ActivityPub for WordPress
    @activitypub.blog@activitypub.blog

    News about the ActivityPub plugin for WordPress.

    21 posts
    501 followers

    As always, we welcome your feedback and ideas — they help shape the future of the ActivityPub plugin and the growing WordPress Fediverse community! 🚀

  • New Look, Faster Blocks in ActivityPub 6.0.0

    In this version of ActivityPub for WordPress, most blocks received a pretty fundamental overhaul of their technical infrastructure, design, and functionality.

    The biggest change is almost invisible—all blocks now use WordPress’ Interactivity API under the hood, shedding a substantial amount of load-heavy scripts. On well-optimized sites, this should lead to noticeably quicker load times and improved web vitals.

    Let’s dive in and look at each block individually.

    Follow Me Block

    After updating, you might glance at your existing Follow Me blocks and think… “Did anything change?” That’s the goal! We’ve worked hard to keep things fully backwards compatible, so nothing should break—or even look too different—unless you want it to.

    ActivityPub for WordPress
    ActivityPub for WordPress
    @activitypub.blog@activitypub.blog

    News about the ActivityPub plugin for WordPress.

    21 posts
    501 followers

    The “Follow” button was updated to use WordPress’ built-in Button block, so all those customization options you already know and love are right there. We also turned “Button Only” into a proper Block Style. You’ll see it right next to the default, complete with a hover preview, making it easy to switch between.

    ActivityPub for WordPress
    ActivityPub for WordPress
    @activitypub.blog@activitypub.blog

    News about the ActivityPub plugin for WordPress.

    21 posts
    501 followers

    And speaking of style: there’s a new Profile style! This transforms the block into something that looks like an author card, complete with a description, header image, and post/follower stats. More social, more visual, still fully customizable. Not into the rounded corners and shadows? No problem—you can tweak those in the Styles tab.

    ActivityPub for WordPress
    ActivityPub for WordPress
    @activitypub.blog@activitypub.blog

    News about the ActivityPub plugin for WordPress.

    21 posts
    501 followers

    But that’s not all! The Modal containing the follow information also received a slight makeover, making it more theme-agnostic in its appearance.

    Followers Block

    For this block we didn’t hold back on updating the design—subtler styling and better theme integration, so it looks at home wherever you drop it. Like we did with the Reactions block in version 5.9.0, we’ve updated the title to use WordPress’ native Heading block. That gives you more control over appearance, while keeping things compatible with existing content.

    This block now benefits from the same Interactivity API improvements and renders server-side on first load, making it feel noticeably faster and more responsive right from the start.

    We also introduced a new Card style here (you might’ve spotted it in the 6.0.0 announcement). It pairs nicely with the Follow Me block’s Profile style—rounded corners and a coordinated look that helps everything feel part of the same family.

    They’ll be more changes to come soon, as we unlock font and background customizations to bring the block up to par with the rest of them.

    Reactions Block

    The Reactions block is a bit of a behind-the-scenes hero. Thanks to block hooks, it can automatically appear at the end of posts—no editor work required. But if you want to place it manually (like we’re doing here), you totally can.

    Beyond receiving the same technical upgrades as the other blocks, this one now displays the actual reactions in the Editor, matching what you see on the frontend—no more stand-in data unless there are no reactions yet. It also includes a few subtle improvements, like rendering an HTML comment when there’s nothing to show (so you’re not left guessing), and displaying more avatars when the block is set to “wide” or “full”-width, making better use of the space.

    Remote Reply

    This one’s a bit niche, but clever: Remote Reply lets logged-out users respond to Fediverse comments directly from your site. It’s not a block you can add in the editor, but it now uses the same lightweight tech as the Follow Me button—so it loads faster and feels smoother.

    If you’ve never seen it in action, you’re not alone—it only appears when certain conditions are met (logged out, looking at a Fediverse-sourced comment, etc.). Here’s a quick demo:


    While most of what ActivityPub does happens quietly behind the scenes, this update puts a little more shine on the parts your visitors can see. The blocks are lighter, more flexible, and a bit more fun to work with.

    As always, we’d love to hear what you think! Every improvement in this release was shaped by feedback from users like you—so keep it coming!

  • Our 2025 Roadmap: Building the Future of WordPress Federation

    A Wapuu in a spacesuit flying through the space holding a ball with the fediverse logo.

    We’re excited to share this roadmap — there’s a lot happening with the ActivityPub plugin, and we can’t wait to show you what’s coming next.

    We often refer to this roadmap in GitHub issues and discussions, but until now, we haven’t published a full roadmap post — nor a formal changelog. This post is a first step toward keeping the community more informed about what’s planned and what’s coming up next.

    Our goal for this year is to finalize the full ActivityPub experience — so that WordPress can be used as a first-class citizen of the Fediverse. This means enabling not only publishing to the network, but also following, reading, interacting, and moderating — all in a seamless way that feels natural for WordPress users.

    This roadmap is not set in stone — priorities may shift based on community feedback, WordPress updates, or changes in the wider Fediverse. But it should give you a good sense of where we’re going.

    Followers/Following

    This is what we’re currently working on. You can follow the progress on GitHub.

    Right now, the plugin supports only Followers. It doesn’t yet offer a way for your site to follow others in the Fediverse. But with new initiatives like the “Reader Experience,” this will need to change.

    To support true two-way relationships — both Followers and Following — we need a database model that can clearly represent both types of connections. The current system, which relies on GUIDs to track remote actors, wasn’t designed for this. At the moment, it can store a remote actor as a follower of your site, but it doesn’t easily support the ability for your site to follow them back.

    Implementing Following cleanly will require rethinking how this data is stored and connected.

    Actors

    This ties into a broader challenge with how the plugin currently models actors — both local users on your site and remote users from other Fediverse servers.

    Today, the plugin uses virtual users to represent these actors. This was a practical choice early on to get federation working without rewriting how WordPress manages users.

    But as the plugin grows — especially with features like Following and the Reader Experience — this approach is creating friction. Virtual users don’t behave exactly like regular WordPress users, so each time we add new features, we end up writing special workarounds.

    Over time, this adds complexity and makes the system harder to maintain. Moving toward a more unified model for actors — one that integrates more naturally with WordPress’s existing structures — will keep the plugin flexible and reliable.

    Moderation

    Currently, the plugin relies on WordPress’s built-in “Disallowed Comment Keys” system to filter unwanted content at the inbox endpoint — before any ActivityPub request is processed. This mechanism allows you to block activities based on keywords or domains, using the same rules you’d apply to comments.

    However, this approach is fairly blunt: it’s a simple keyword filter, not a nuanced moderation tool. This limitation will become more important as the plugin expands — for example, when adding support for image-based comments or richer media interactions.

    Building a dedicated filtering mechanism is an important step toward giving site owners fine-grained moderation tools that are tailored to the unique challenges of federated content.

    More details:

    👉 GitHub — Question: How does this plugin interact with moderation and trust & safety on the fediverse?

    Reader

    A full Reader experience is one of our long-term goals — it’s the final big feature needed to give WordPress sites a complete ActivityPub/Fediverse experience.

    Today, the plugin lets others follow your site, but there’s no built-in way for you to subscribe to and read content from others — in other words, there’s no “timeline” yet inside WordPress.

    We plan to start with a simple, flexible approach: focusing first on storing remote posts in a way that’s compatible with tools like the WordPress.com Reader or third-party plugins like Friends or the Event Bridge for ActivityPub.

    Once this foundation is in place, we’ll iterate on direct support — making it possible for site owners and users to follow and read Fediverse posts right inside WordPress.

    Direct Messages

    As part of this evolution toward a full Reader experience, we’re also exploring support for Direct Messages.

    This is a frequently requested feature and an important part of richer Fediverse interactions. We plan to start with an initial implementation that enables private messaging — and then build on it as we learn from real-world use.

    Fully delete profiles

    One key principle of the GDPR is the “right to be forgotten.”

    Currently, the plugin supports remote deletions, but does not trigger Delete Activities for local user actions.

    The challenge is that WordPress operates differently from most federated social networks. Users might expect Delete Activities for certain actions that could have major consequences — for example, deactivating the plugin.

    But deactivating a plugin is also a common troubleshooting step in WordPress.

    To address this, we first need to define different use cases and guide users on how to trigger Delete Activities appropriately.

    More details:

    👉 GitHub — User Delete Milestone

    Client-to-Server API (exploration)

    In addition to the way servers communicate with each other across the Fediverse, ActivityPub also defines a “Client-to-Server” API.

    This API is mainly designed to allow apps and clients (such as mobile apps) to publish content to a Fediverse server.

    In the future, this could open up interesting possibilities for WordPress — for example, allowing WordPress to act as a bridge or proxy, making it easier to bring in and federate content from other tools or platforms.

    At this stage, we’re exploring and evaluating this based on community interest and potential use cases.

    Staying Informed

    We’ll continue to keep you informed about the progress of this roadmap.

    For each new release, we’ll publish posts highlighting the latest features and improvements. For larger projects — like the Reader experience or expanded moderation tools — we’ll also share regular updates so you can follow along as the work evolves.

    As always, we welcome your feedback and ideas — they help shape the future of the ActivityPub plugin and the growing WordPress Fediverse community! 🚀

  • 6.0.0 – New Kids on the Block

    Our latest release brings a lot of improvements — especially to our blocks!

    The Follow Me and Followers blocks now have a fresh design, better interactivity, and broader support for ActivityPub-enabled users.

    A screenshot of the new 'Follow Me' Block!

    The Reactions block and “Reply on the Fediverse” feature also now take advantage of the latest Block Editor features and are built on the Interactivity API for a smoother experience.

    We’ll follow up soon with a deeper dive into the new block features — stay tuned!

    Beyond blocks, publishing new blog posts now reliably sends a Create activity to the Fediverse, so your followers won’t miss a thing. We’ve also improved how hashtags and @-mentions appear when posts federate to Mastodon and other platforms.

    Under the hood, we’ve cleaned up and modernized the codebase — and the plugin now requires WordPress 6.5 to take full advantage of the latest WordPress features.

    Meanwhile, we’re kicking off a major rework of the Followers/Following system. Expect more enhancements to roll out over the next few weeks. Plus, we’ll be publishing a blog post with our roadmap plans in the coming days — exciting things ahead! 🚀

    Full Changelog

    Added

    • Enhanced markup of the “follow me” block, for a better Webmention and IndieWeb support.
    • The actor of the replied-to post is now included in cc or to based on the post’s visibility.

    Changed

    • “Reply on the Fediverse” now uses the Interactivity API for display on the frontend.
    • Bumped minimum required WordPress version to 6.5.
    • Default avatar and error handling for the reactions popover list.
    • Ensured that publishing a new blog post always sends a Create to the Fediverse.
    • Followers block has an updated design, new block variations, and uses the Interactivity API for display on the frontend.
    • Follow Me and Followers blocks can now list any user that is Activitypub-enabled, even if they have the Subscriber role.
    • Likes and Reposts for comments to a post are no longer attributed to the post itself.
    • New system to manage followers and followings more consistently using a unified actor type.
    • Re-enabled HTML support in excerpts and summaries to properly display hashtags and @-replies, now that Mastodon supports it.
    • Refactored to use CSS for effects instead of JavaScript, simplifying the code.
    • Refine the plugin’s handling and storage of remote actor data.
    • The Follow Me block now uses the latest Block Editor technology for display on the frontend.
    • The Reactions block now uses the latest Block Editor technology for display on the frontend.

    Removed

    • Cleaned up the codebase and removed deprecated functions.

    Fixed

    • Added forward compatibility for Editor Controls, fixing deprecated warnings in the Editor.
    • Avoid type mismatch when updating activitypub_content_warning meta values.
    • Default number of attachments now works correctly in block editor.
    • Fixed a bug in Site Health that caused a PHP warning and missing details for the WebFinger check.
    • Fixes a bug in WordPress 6.5 where the plugin settings in the Editor would fail to render, due to a backwards compatibility break.
    • Improved automated setup process for the Surge caching plugin.
    • Improved excerpt handling by removing shortcodes from summaries.

    Downloads

  • 5.9.0 – Easier Onboarding for Your Fediverse Experience

    Getting started with ActivityPub on WordPress just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the Fediverse—from the moment you activate it.

    Screenshot that shows the onboarding checklist.

    Whether you’re new to ActivityPub or just setting things up again, the onboarding flow helps you make informed choices around visibility, content formatting, and profile setup. It’s built to give you confidence that your content is reaching the right audiences in the right way.

    Screenshot that shows the new help tabs.

    Tailored for You

    The plugin now adapts its behavior based on the caching plugins you have installed. You’ll also find clearer guidance if you’re using Surge, and an option to fine-tune how your content is tailored for browsers versus Fediverse services.

    We’ve moved profile-related settings out of the welcome page and into new dashboard widgets, so they’re easier to find and update. And to make the learning curve smoother, the Help tab now includes a section explaining how ActivityPub works on the users page.

    Media, Previews, and Performance

    Beyond onboarding, this release adds support for audio and video attachments in ActivityPub embeds and previews. Posts shared to the Fediverse can now include up to four images, and you can choose how many to include on a per-post basis. Editor previews have also been improved—they now show media even if the post hasn’t been published yet.

    Screenshot that shows the preview feature.

    For performance, author profiles now return a smaller set of extra fields (up to 20) to avoid bloated responses, and invalid items in the Outbox are skipped gracefully instead of causing errors.

    Designed to Grow With You

    This update also brings better mobile support for settings pages, improved documentation, and more robust error handling for things like missing or misformatted Outbox requests. And for developers, several filters and hooks have been updated or deprecated to make future work smoother and more predictable.

    If you’ve been curious about joining the Fediverse or connecting your blog in a more structured way, now’s a great time to try it. Just activate the plugin and let the onboarding guide you through the rest.

    Tried the new onboarding? Let us know how it worked for you and what you’d like to see improved.

    Full Changelog

    Added

    • ActivityPub embeds now support audios, videos, and up to 4 images.
    • Added a check to make sure we only attempt to embed activity objects, when processing fallback embeds.
    • Add setting to enable or disable how content is tailored for browsers and Fediverse services.
    • Adjusted the plugin’s default behavior based on the caching plugins installed.
    • A guided onboarding flow after plugin activation to help users make key setup decisions and understand Fediverse concepts.
    • Author profiles will cap the amount of extra fields they return to 20, to avoid response size errors in clients.
    • Fediverse Preview in the Editor now also supports video and audio attachments.
    • Guidance for configuring Surge to support ActivityPub caching.
    • Help tab section explaining ActivityPub capabilities on the users page.
    • Profile sections have been moved from the Welcome page to new Dashboard widgets for easier access.
    • The ActivityPub blog news feed to WordPress dashboard.
    • The Outbox now skips invalid items instead of trying to process them for output and encountering an error.

    Changed

    • Batch processing jobs can now be scheduled with individual hooks.
    • Better error handling when other servers request Outbox items in the wrong format, and 404 pages now show correctly.
    • Fediverse Previews in the Block Editor now show media items, even if the post has not been published yet.
    • Hide interaction buttons in emails when the Classic Editor is used.
    • Improve compatibility with third-party caching plugins by sending a Vary header.
    • Much more comprehensive plugin documentation in the Help tab of ActivityPub Settings.
    • NodeInfo endpoint response now correctly formats localPosts values.
    • Reactions block heading now uses Core’s heading block with all its customization options.
    • Settings pages are now more mobile-friendly with more space and easier scrolling.
    • The number of images shared to the Fediverse can now be chosen on a per-post basis.
    • Updated default max attachment count to four, creating better-looking gallery grids for posts with 4 or more images.
    • Use a dedicated hook for the “Dismiss Welcome Page Welcome” link.
    • Use FEP-c180 schema for error responses.
    • Use Audio and Video type for Attachments, instead of the very generic Document type.

    Deprecated

    • Deprecated rest_activitypub_outbox_query filter in favor of activitypub_rest_outbox_query. Deprecated activitypub_outbox_post action in favor of activitypub_rest_outbox_post.

    Fixed

    • Broken avatars in the Reactions and Follower block are now replaced with the default avatar.
    • Email notifications for interactions with Brid.gy actors no longer trigger PHP Warnings.
    • Improved support for users from more Fediverse platforms in email notifications.
    • Improved the handling of Shares and Boosts.
    • Issue preventing “Receive reblogs (boosts)” setting from being properly saved.
    • Mention emails will no longer be sent for reply Activities.
    • Prevent accidental follower removal by resetting errors properly.
    • Properly remove retries schedules, with the invalidation of an Outbox-Item.
    • The blog profile can no longer be queried when the blog actor option is disabled.

    Downloads

  • Your Site, Your Rules: Filtering Fediverse Activity

    When running a WordPress site with the ActivityPub plugin, you’re not just managing a website—you’re also operating a node in the Fediverse. This means you need effective tools to block unwanted activities, users, servers, and content from other instances across the network.

    How Blocking Works in ActivityPub for WordPress

    The ActivityPub plugin takes a pragmatic approach to blocking unwanted content by building on WordPress’s existing “Disallowed Comment Keys” feature. While this leverages familiar comment filtering tools, it may be less immediately obvious than the dedicated blocking interfaces found in some other Fediverse applications.

    The Disallowed Comment Keys System

    At its core, WordPress has long had a built-in system to filter comments based on specific keywords or domains. The ActivityPub plugin builds on this system to also block incoming Fediverse activities.

    When an activity arrives at your WordPress site’s inbox, the plugin runs it through the same filtering mechanism used for regular WordPress comments. This means that if you’ve configured WordPress to block certain domains or keywords in comments, those same rules will apply to incoming ActivityPub activities like follows, likes, or replies.

    Where to Find and Configure Blocking Settings

    The blocking settings aren’t located within the ActivityPub plugin’s own settings page. Instead, they’re accessed through WordPress’s standard Discussion Settings:

    1. Navigate to Settings → Discussion in your WordPress admin panel.
    2. Scroll down to the Disallowed Comment Keys section.
    3. Add domains, keywords, or IP addresses you want to block, one per line.

    For example, to block a problematic Fediverse server, you would add its domain (like bad-instance.com) to the disallowed comment keys list.

    The ActivityPub settings page also links to this under Settings → ActivityPub → Settings tab, where the “Blocklist” section points you to the same Disallowed Comment Keys setting.

    Tracking Blocked Activities

    When the plugin blocks an incoming activity, it logs relevant details to your PHP error logs. This typically includes information about the actor (user) who sent the activity, helping you monitor and refine your blocking strategy over time.

    Best Practices for Blocking

    When managing your WordPress site as a Fediverse node:

    1. Be specific: Block particular profiles or domains instead of using broad keyword filters. Precision helps avoid false positives.
    2. Review your logs: Periodically check your PHP error logs to understand what’s being blocked.
    3. Adjust as needed: Refine your blocking strategy based on the patterns you observe.

    Unlike centralized social networks, the Fediverse gives you direct control over what appears on your site. Your blocklist is a reflection of your site’s values and the kind of interactions you want to support.

    Fediverse Reactions
  • From Toot to Post: Mastodon Migration Made Easy

    If you’ve been posting on Mastodon and want to bring those posts into your WordPress site, the new importer makes that possible. It’s a beta feature, but it already handles the basics well—and helps you keep more of your content in one place.

    Keep What You Create

    Social platforms can come and go—or just change in ways you didn’t expect. Maybe your Mastodon server shuts down, or the people running it move on. When that happens, it’s easy to lose your old posts and the history you’ve built up.

    The Mastodon importer helps you take control by bringing your posts into your WordPress site, where you own the content and can decide how it’s stored, shared, and presented. You’re not just copying things over—you’re giving your content a more permanent home.

    Getting Started

    The import process is user-friendly and follows a clear workflow:

    1. Log into your Mastodon account and go to Preferences > Import and Export.
    2. Request your archive and download the ZIP file when it’s ready.
    3. Open the WordPress Mastodon Importer and upload your file.
    4. Choose an author for your imported posts and decide whether to include media files or just the text.

    Once uploaded, you can assign imported posts to a specific author and choose whether to include image attachments with your posts or just import the text content.

    The importer processes your posts from the Mastodon outbox.json file, filtering to include only public posts while skipping boosts. Each post maintains its original publication date, content, and media. If your posts include images, video, or audio, the importer brings those in too and adds them to the post automatically.

    Your Posts, Rebuilt

    The importer transforms your Mastodon content into a rich block editor experience. Your posts convert into proper paragraph blocks while maintaining their original formatting. Images are organized into gallery blocks with captions intact, while videos and audio files transform into their respective media blocks for optimal playback.

    Hashtags from your Mastodon posts are converted to WordPress tags, preserving your content’s organizational structure and discoverability.

    When a post is part of a conversation, the importer adds a reply block at the beginning of your post that embeds the original post you were responding to. This keeps the conversation flow clear and provides context for your response.

    All these blocks remain fully editable after import, so you can tweak layouts or adjust media presentation as needed.

    For classic editor users, the importer keeps things simple with standard shortcodes for media. It’s not as fancy as the block version, but it should work reliably with your existing setup.

    It’s a Beta—Your Feedback Counts

    The Mastodon importer is still in beta, and there’s more work ahead—especially when it comes to large archives and better handling of replies. We’ve followed WordPress importer best practices, but real-world use is where things really get tested.

    Tried the importer? Let us know how it went—what worked, what didn’t, and what you’d love to see next. Your feedback helps shape where we take it from here.