Author: Konstantin Obenland

  • 7.7.0 — Extra Quotable

    7.7.0 — Extra Quotable

    Right on the heels of WordPress 6.9 we released a new version of the ActivityPub plugin, making quote comments visible in the Reactions block and bringing you new ways of customizing your author pages.

    Quotes Join the Reactions Party

    When someone quotes your post on Mastodon or other Fediverse platforms, you’ll now see it right alongside your likes and reposts. Quotes get their own row in the Fediverse Reactions display, making it easy to see at a glance who’s building on your ideas and adding their own commentary.

    Behind the scenes, we improved how we’re detecting quotes. Different platforms have their own ways of handling quote posts, and not all of them speak the same language. The plugin now understands these variations better, so whether someone quotes you from Mastodon, Misskey, or elsewhere, it just works.

    This means your engagement stats tell a fuller story. A quote isn’t just a repost—it’s someone adding their voice to yours, and now WordPress can recognize and display that distinction.

    Show Off Your Fediverse Identity

    If you’ve set up extra fields on your Fediverse profile—things like your website, pronouns, location, or links to other accounts—you can now display them directly on your WordPress site with the new Extra Fields block.

    • Fediverse Extra Fields block using the cards style, showing two profile fields displayed as separate bordered cards: 'Powered by' with value 'WordPress' and 'Blog' with a clickable URL, stacked vertically below the author profile header.
    • Fediverse Extra Fields block using the default list style, showing profile fields in a compact table layout with labels on the left and values on the right: 'Powered by: WordPress' and 'Blog:' with a clickable URL.
    • Fediverse Extra Fields block using the stacked style, showing profile fields with labels above their values: 'Powered by' above 'WordPress' and 'Blog' above a clickable URL, arranged vertically below the author profile header.

    Drop it onto any page, post, or your author archive template, pick a style that fits your theme, and your profile details appear right where your visitors can see them. Choose from a clean table layout, a stacked list, or styled cards. You can also control how many fields to show and customize colors to match your site.

    Changelog

    Added

    • Add documentation guide for using ActivityPub blocks in classic themes with Block Template Parts
    • Added a new Fediverse Extra Fields block to display ActivityPub extra fields, featuring compact, stacked, and card layouts with flexible user selection options.
    • Added support for quote comments, improving detection and handling of quoted replies and links in post interactions.
    • Add notifications for boosts, likes, and new followers in Mastodon apps via the Enable Mastodon Apps plugin
    • Adds support for turning tags, categories, and custom taxonomies into federated collections in the Reader view so you can browse and follow topics more seamlessly.
    • Prevent email notifications for comments on ActivityPub custom post types.
    • Send a Reject activity when a quote comment is deleted, revoking previous quote permissions and ensuring consistent inbox handling.
    • Store and retrieve webfinger acct for remote actors to improve identification and reduce lookups

    Changed

    • Improve gallery and image block markup for ap_posts with better alt text and optimized layouts.
    • Improve support for media attachments by handling Audio, Document, and Video object types in addition to Images.
    • Maintain consistent return values in Create handler.
    • Remove trailing hashtags from incoming posts to prevent duplication with taxonomy tags.
    • Store comments and reactions from followed actors on reader posts, and keep them separate from your site’s comments in wp-admin.
    • Update compatibility testing for PHP 8.5 and WordPress 6.9
    • Use tag name instead of slug for hashtag display.

    Fixed

    • Always includes id, first, and last links in collection responses, ensuring followers and following lists display correctly in Mastodon.
    • Automatically approves reactions on ActivityPub posts in the Reader view for a smoother, more seamless interaction experience.
    • Deliver public activities to followers only.
    • Disable REST API endpoints for internal post types.
    • False mention email notifications for users in CC field without actual mention tags.
    • Fix “Filename too long” errors when downloading attachments from URLs with query parameters (e.g., Instagram CDN URLs).
    • Fix make_clickable corrupting existing anchor tags in ActivityPub content
    • Fix PHP 8.5 deprecation warnings for ReflectionProperty::setAccessible() and ReflectionMethod::setAccessible()
    • Improved handling of unusual activity data to avoid errors when activities contain unexpected formats.
    • Preserve original ActivityPub activity timestamps when creating posts and comments instead of using current time.
    • Prevented duplicate email notifications when ActivityPub instances re-send Follow activities for already-following actors.
    • Prevents unwanted comment types—like pingbacks, trackbacks, notes and custom system comments, from being federated, ensuring only real user comments are shared with the fediverse.
    • Removed a redundant instruction from the custom post content settings to simplify the UI.
    • Reply block now shows fallback link when oEmbed fails instead of empty div.
    • Simplified reply links by removing special handling for federated comments, making replies work the same for all comments where replying is allowed.
    • Undefined array key warning in Scheduler::async_batch when called without arguments.

    Downloads

    Thank You!

    As always, a huge thanks to everyone who contributed code, reported bugs, tested early builds, and shared ideas. Every bit of feedback helps make ActivityPub for WordPress better for the whole community.

    Version 7.7.0 is available now—update and let us know what you think!

  • Join Us for Office Hours: Dec 1-5

    We’re excited to announce that the ActivityPub for WordPress team will be hosting open office hours during the first week of December! Whether you’re just getting started with ActivityPub, running into setup issues, or want to chat about where the plugin is heading, we’d love to see you there.

    What Are Office Hours?

    Think of office hours as an open door to hang out with @pfefferle and @obenland. Drop in anytime during the scheduled sessions to get hands-on help with plugin installation and setup, troubleshoot any issues you’re experiencing, or share your ideas for new features and improvements. You can also discuss the roadmap and what’s coming next, ask questions about ActivityPub, the fediverse, or how it all works, and connect with the community to see what others are building.

    No agenda, no registration required—just show up when you can and let’s talk ActivityPub!

    Schedule: December 1-5, 2025

    We’re offering multiple sessions throughout the week to accommodate different time zones. Join whichever works best for you!

    Monday
    Dec 1
    Tuesday
    Dec 2
    Wednesday
    Dec 3
    Thursday
    Dec 4
    Friday
    Dec 5
    10:00 CET🗓️ Add to Calendar🗓️ Add to Calendar🗓️ Add to Calendar
    10 am ET📅 Add to Calendar📅 Add to Calendar📅 Add to Calendar📅 Add to Calendar📅 Add to Calendar

    Time zone note: CET = Central European Time | ET = Eastern Time (US)

    Wapuu, the yellow WordPress mascot, sits at a clean support desk wearing a headset and a blue ActivityPub-themed hoodie. Floating holographic icons hover above the desk, including comments, question marks, and the Fediverse logo, representing community support. A soft, starry space background shines through a large window behind Wapuu.

    How to Join

    Meeting Link: https://meet.google.com/mdb-bkdw-ypz

    Just click the link above at any scheduled time and join us! No need to RSVP—these are open sessions where anyone can drop in.

    New to video calls? No worries! Just click the link, and you’ll be guided through joining. Most platforms work right in your browser.

    Who Should Come?

    Everyone! Seriously, we mean it:

    • WordPress site owners curious about connecting to the fediverse.
    • Developers working with the ActivityPub plugin.
    • Fediverse enthusiasts who want to understand how WordPress fits in.
    • Anyone with questions, bug reports, or ideas.
    • Lurkers welcome too—feel free to just listen and learn!

    Whether you’re running a personal blog, a community site, or just exploring what ActivityPub can do, we’d love to meet you.

    Can’t Make These Times?

    We know December 1-5 won’t work for everyone. If you can’t join us live, you can connect with us on GitHub or join the conversation in our community forum.

    We’re planning to do more office hours in the future based on how this week goes, so let us know what times work better for you!

    See You There! 👋

    We’re really looking forward to connecting with the community, answering your questions, and hearing about how you’re using ActivityPub on WordPress. Mark your calendars, grab a coffee (or tea!), and let’s chat!

    Have questions before office hours? Drop a comment below.

  • 7.5.0 — Follow the Feed, Quote the Lead

    We’re back with a fresh release, and this one makes following and sharing smoother than ever—plus gives you more control over how your posts can be quoted.

    A New Way to Follow (For Now)

    Starting today, users on WordPress.com sites and self-hosted sites connected through Jetpack can see the posts of accounts they follow directly in their WordPress.com Reader timeline. The Following UI has been around for a little while, yet hidden, and with this release it will be enabled by default for these sites.

    When you follow an account, ActivityPub checks for a discoverable RSS feed. If one exists, it’s automatically added to your Reader timeline so new posts appear alongside everything else you already follow. Unfollowing works the same way—the feed disappears when you remove the account. And if you’d like to view the feed for an account you’ve followed, just hover over it in the list table and click View Feed.

    Think of this as a bridge: a simple way to read the posts of accounts you follow today, while we continue building a full, first-class ActivityPub reading experience for tomorrow.

    There are a couple of details to keep in mind. Removing a subscription directly in the Reader won’t update your site’s Following list, and interactions are limited to what RSS allows, which means sharing and reposting rather than the full range of ActivityPub features.

    Running a self-hosted site without Jetpack? You can still enable the Following UI manually—it just won’t connect with the Reader.

    Quote Post Controls

    We’ve also added support for Mastodon’s quote post feature—and given you an easy way to control how others can quote your content.

    A screenshot of a blog post quoted on Mastodon.

    When writing in the Block Editor, you’ll now see a sidebar setting that lets you decide whether everyone can quote your post, only your followers can, or if quoting is reserved for you alone. Once published, Mastodon and other compatible platforms will honor your choice automatically. No extra setup needed—just write, choose, and publish with confidence.

    Full Changelog

    Added

    • Added a setting to control who can quote your posts.
    • Added support for QuoteRequest activities (FEP-044f), enabling proper handling, validation, and policy-based acceptance or rejection of quote requests.
    • Add upgrade routine to enable ActivityPub feeds in WordPress.com Reader
    • Add Yoast SEO integration for author archives site health check.
    • Improved interaction policies with clearer defaults and better Mastodon compatibility.
    • New site health check warns if active Captcha plugins may block ActivityPub comments.
    • Sync following meta to enable RSS feed subscriptions for ActivityPub actors in WordPress.com Reader
    • You can now follow people and see their updates right in the WordPress.com Reader when using Jetpack or WordPress.com.

    Changed

    • Added support for fetching actors by account identifiers and improved reliability of actor retrieval.
    • Clarify error messages in account modal to specify full profile URL format.
    • Improved checks to better identify public Activities.
    • Improved compatibility by making the ‘implements’ field always use multiple entries.
    • Improved recipient handling for clarity and improved visibility handling of activities.
    • Remote reply blocks now sync account info across all blocks on the same page
    • Standardized notification handling with new hooks for better extensibility and consistency.
    • Updated sync allowlist to add support for Jetpack notifications of likes and reposts.

    Fixed

    • Fixed an issue where post metadata in the block editor was missing or failed to update.
    • Fix Flag activity object list processing to preserve URL arrays
    • Fix PHP warning in bulk edit scenario when post_author is missing from $_REQUEST
    • Posts now only fall back to the blog user when blog mode is enabled and no valid author exists, ensuring content negotiation only runs if an Actor is available.

    Downloads

    Thank you!

    Thanks to everyone who contributed code, tested, offered feedback, or lent support along the way. Update to 7.5.0 today and follow, share, and quote to your heart’s content!

  • 7.3.0 – Ctrl+Fed+Delete

    A cute Wapuu astronaut inside a futuristic space station, sitting at a glowing control desk with holographic message icons floating in front of them. Some messages have a green checkmark for approval, others a red X or trash bin icon for deletion. The Wapuu looks focused, managing which messages can enter from the Fediverse and which should be removed. The background shows the curved windows of the space station with stars and a planet outside, blending sci-fi tech with Wapuu’s cartoon charm.

    Ready for a smoother ride on the Fediverse? ActivityPub for WordPress 7.3.0 is here to make your experience friendlier and more flexible than ever. Whether you’re keeping out unwanted guests, bringing stray conversations home, or just tidying up your digital footprint, this release puts powerful new tools right at your fingertips. Let’s take a look at what’s new!

    Personalized & Site-Wide Moderation

    With this release, Moderation tools are easier to discover and manage, thanks to a revamped two-tiered system that empowers both site admins and individual users with greater control over their Fediverse experience.

    Now, site administrators can set up site-wide blocks—covering domains, keywords, and even specific actors—right from the Settings screen or the new Blocked Actors table. These tools work together to keep out unwanted content and spammy actors for everyone on your site.

    But we didn’t stop there! Every user can fine-tune their own experience. Head to your Profile to add personal domain and keyword blocks, or visit the new Blocked Actors submenu under Users to manage who can interact with you. Blocking someone is easier than ever—just paste their profile ID or webfinger, or use the handy new “Block” link right from your Followers list.

    • Followers table in WordPress with options to delete, block, or follow back ActivityPub followers.
    • Confirmation screen in WordPress for blocking an ActivityPub account, including options for site-wide blocking.
    • Followers page in WordPress showing an empty list and a notification that an account has been blocked.

    Whenever new ActivityPub content comes in, the plugin checks it against both global and personal blocks. Domains are matched not just to the sender, but also to the activity and object IDs. Keywords are scanned throughout the content, summaries, and even actor names. Site-wide rules always run first, followed by your personal settings—so you’re protected at every level. (For the blog actor, only site-wide blocks apply.)

    For backwards compatibility, the classic comment disallow list is still supported, ensuring your existing moderation rules continue to work seamlessly.

    Saying Goodbye, the Right Way

    Sometimes, a clean break is necessary. Whether you’re retiring a blog, removing a user, or handling old content, this release makes sure your presence in the Fediverse can be removed gracefully and consistently.

    We’ve added a self-destruct feature for sites that want to step away entirely. With a single CLI command (wp activitypub self_destruct), WordPress will send out Delete activities to all followers. Built-in progress tracking and admin notifications let you know when the process has finished, so you can be sure your Fediverse footprint is fully cleared.

    User deletion is now handled with the same care. When a user is removed from WordPress, a corresponding Delete activity is sent to their followers, ensuring that connections across the network are properly closed.

    Bring the Conversation to You

    Sometimes a reply you care about doesn’t make it all the way to your Inbox. Maybe it was posted on a remote server with finicky delivery, or slipped past the usual flow of ActivityPub. With this release, you don’t have to miss out.

    Now you can search for any remote URL directly. If the comment is already in your database, you’ll be taken straight to the matching comment thread on your blog post. If not, the plugin will fetch and import the remote reply to that post, so you can fold scattered conversations back into your site seamlessly.

    This means you’re no longer limited to what arrives automatically. If you’ve got a link to a discussion happening elsewhere in the Fediverse, you can pull it right into your own comment threads and keep the context intact.

    A Persistent Inbox for Better Debugging

    Fediverse interactions can get complex, and sometimes you need deeper insight into what’s really happening under the hood. That’s where the new persistent inbox comes in.

    When enabled in Advanced Settings, the plugin now logs all incoming Create or Update activities. Instead of vanishing once processed, these entries are collected in a dedicated Inbox Collection—giving you a complete trail to reference when debugging.

    Full Changelog

    Added

    • Add actor blocking functionality with list table interface for managing blocked users and site-wide blocks.
    • Add code coverage reporting to GitHub Actions PHPUnit workflow with dedicated coverage job using Xdebug.
    • Add comprehensive blocking and moderation system for ActivityPub with user-specific and site-wide controls for actors, domains, and keywords.
    • Add comprehensive unit tests for Followers and Following table classes with proper ActivityPub icon object handling.
    • Added link and explanation for the existing Starter Kit importer on the help tab of the Following pages.
    • Adds a self-destruct feature to remove a blog from the Fediverse by sending Delete activities to followers.
    • Adds a User Interface to select accounts during Starter Kit import.
    • Adds support for importing Starter Kits from a link (URL).
    • Adds support for searching (remote) URLs similar to Mastodon, redirecting to existing replies or importing them if missing.
    • Adds support for sending Delete activities when a user is removed.
    • Adds support for Starter Kit collections in the ActivityPub API.
    • A global Inbox handler and persistence layer to log incoming Create and Update requests for debugging and verifying Activity handling.
    • Follower lists now include the option to block individual accounts.
    • Improved handling of deleted content with a new unified system for better tracking and compatibility.
    • Moderation now checks blocked keywords across all language variants of the content, summary and name fields.
    • When activated or deactivated network-wide, the plugin now refreshes rewrite rules across all sites.

    Changed

    • Add default avatars for actors without icons in admin tables.
    • Added support for list of Actor IDs in Starter Kits.
    • Improve Following class documentation and optimize count methods for better performance.
    • Refactor actor blocking with unified API for better maintainability.

    Fixed

    • Blocks relying on user selectors no longer error due to a race condition when fetching users.
    • Fix duplicate HTML IDs and missing form labels in modal blocks.
    • Fix malformed ActivityPub handles for users with email-based logins (e.g., from Site Kit Google authentication).
    • Fix PHP 8.4 deprecation warnings by preventing null values from being passed to WordPress core functions.
    • Improves handling of author URLs by converting them to a proper format.
    • Improves REST responses by skipping invalid actors in Followers and Following controllers.
    • More reliable Actor checks during the follow process.
    • Prevents Application users from being followed.
    • Proper implementation of FEP 844e.
    • Switches ActivityPub summaries to plain text for better compatibility.

    Downloads

    Thank you!

    Big thanks to everyone who contributed code, shared feedback, tested, or encouraged us along the way! Together, we’re making the fediverse more connected—one release at a time. ❤️

    We’ve just rolled out version 7.3.0—try it out and let us know what you think!

  • 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!

  • 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.

  • 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
    489 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
    489 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
    489 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!

  • 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.