Category: Changelog

  • 8.1.0 โ€” By the Numbers

    If 8.0.0 opened the Fediverse up as a two-way street, 8.1.0 helps you see and share what travels down it. A new Fediverse statistics feature leads the release, with a dashboard widget, email reports, and a shareable stats block. Alongside it: a new ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports, and richer image metadata for photographers.

    Wapuu in a space suit floats in front of an oversized, glowing yearly Fediverse stats card. The card shows a big follower number, a rising line chart, and a small "Top Post" highlight. Around Wapuu, little numbered badges drift like stars through space: posts, likes, boosts, replies. Wapuu holds one of the badges up proudly, as if admiring it.

    Your Fediverse, By the Numbers

    The headline work this release is a brand-new Fediverse statistics feature, three connected pieces that finally let you see (and share) how your site is doing on the open social web.

    The Dashboard Widget

    When you log into your WordPress admin, there’s now a Fediverse Stats widget on the dashboard.

    A screenshot of the Fediverse Stats Dashboard Widget.

    It’s built around three things:

    • Stat highlights: followers, posts, and engagement counts, with a comparison to the previous period so you can tell if the line is going up or down.
    • A monthly engagement chart: an interactive SVG line chart of engagement over time.
    • Top supporter and top posts: the people most engaged with your blog, and the posts that travelled furthest.

    If you have both a user actor and a blog actor enabled, a selector lets you switch between them.

    Monthly and Annual Email Reports

    Not everyone logs into wp-admin every day, so the plugin can now also email you your stats.

    There are two report types:

    • Annual reports, a wrap-up of your year on the Fediverse. On by default.
    • Monthly reports, a smaller recap for the previous month. Opt-in, for the folks who like a regular pulse check.

    Both are delivered through the WordPress email system and available as notification preferences, so you can turn them on or off per actor.

    The Stats Block, With a Sharepic

    The same statistics also power a new Fediverse Stats block, a yearly snapshot you can drop into any post or page.

    Fediverse Stats 2025

    @activitypub.blog

    21 Posts Federated
    1,720 Total Engagements
    Follower Growth +0 637 โ†’ 637 followers
    Most Active Month July
    Top Supporter Tim Chambers 10 boosts

    On the page, it renders as a clean card styled to match your theme, with colors and fonts picked up automatically from the active block theme, so it feels at home without fiddling.

    Underneath, it also generates a shareable image version, a sharepic ready to post to the Fediverse itself. Think of it as your Fediverse year-in-review, without firing up a design tool.

    And to make the timing easier, there’s a new seasonal starter pattern that suggests sharing your stats when you create a new post in December or January, the moment when everyone on the timeline is already in reflection mode.

    Open for Apps: The ActivityPub API

    For a long time, the plugin has spoken the server-to-server half of ActivityPub fluently, which is how your posts reach Mastodon, Pixelfed, and the rest. With 8.1.0, the plugin now also exposes an ActivityPub API, an implementation of the Client-to-Server (C2S) half of the protocol.

    In plain language: third-party Fediverse apps can now create, edit, and delete posts on your blog directly, the same way they would on a Mastodon account. Alongside the basics, the ActivityPub API also supports Block, Add (pin a post), and Remove (unpin a post) activities. To make app discovery smoother, actor profiles now also expose OAuth server metadata and a registration endpoint, so clients can find their way in without manual setup.

    The ActivityPub API is experimental and hidden behind a feature flag. To try it, open the ActivityPub settings page, click Screen Options in the top right, enable Advanced Settings, and save. Under the new Advanced tab, flip on ActivityPub API and you’re off. Once enabled, connected apps can be managed from your profile page.

    This is foundational work. Most of what it enables will show up over time, as more apps start treating your WordPress site as something they can post from, not just to.

    Bring Your Friends: Starter Pack Imports

    Starter Packs are one of the easier ways to onboard onto a new Fediverse platform: follow a curated list of people and you land somewhere with a timeline already humming.

    8.1.0 adds support for importing Starter Packs in both the Pixelfed and Mastodon formats. If you’re moving to WordPress from another Fediverse platform, or setting up a new blog and want to bootstrap your Following list, point the importer at a Starter Pack and the plugin will take care of the rest.

    EXIF Metadata for Images

    Photographers, this one’s for you. Image attachments now carry EXIF metadata (camera body, lens, focal length, aperture, shutter speed, ISO) using the Vernissage namespace.

    The short version: the information that makes a photo worth reading about no longer gets stripped on the way out. Vernissage and other photo-focused Fediverse platforms can pick up the metadata and display it alongside the image, the way they would for a native post.

    Changelog

    Security

    • Add rate limiting to app registration to prevent abuse.
    • Fix blog actor outbox exposing private activities to unauthenticated visitors.
    • Restrict localhost URL allowance to local development environments only.
    • Verify that the signing key belongs to the same server as the activity actor.

    Added

    • Add a “Posts and Replies” tab bar for author archives that filters between posts and replies, similar to Mastodon’s profile view.
    • Add a liked collection to actor profiles, showing all posts the actor has liked.
    • Add a seasonal starter pattern that suggests sharing Fediverse stats when creating a new post in December and January.
    • Add a stats block that displays annual Fediverse statistics as a card on the site and as a shareable image on the Fediverse, with automatic color and font adoption from the site’s theme.
    • Add Fediverse statistics dashboard widget with engagement metrics, charts, and monthly/annual email reports.
    • Added activitypub_pre_get_by_id filter to allow plugins to register custom virtual actors resolved by ID.
    • Add EXIF metadata support for image attachments using Vernissage namespace.
    • Add new Fediverse Following Page and Profile Page block patterns.
    • Add OAuth server metadata and registration endpoint discovery to actor profiles.
    • Add real-time streaming for inbox and outbox updates via Server-Sent Events (SSE).
    • Add support for Block, Add (pin post), and Remove (unpin post) activities via Client-to-Server API.
    • Add support for check-in activities posted via compatible apps.
    • Add support for importing Starter Packs in both the Pixelfed and Mastodon formats.
    • Add tags.pub integration to supplement tag timelines with posts from across the Fediverse.
    • Support for ActivityPub Client-to-Server (C2S) protocol, allowing apps like federated clients to create, edit, and delete posts on your behalf.

    Changed

    • Block patterns for follow, following, and profile pages are now only suggested when editing pages.
    • Fix notification pagination when using Enable Mastodon Apps: use date-constrained queries instead of truncating the shared notification pool, and expose $limit, $before_date, and $after_date as additional filter arguments so third-party handlers can fetch the correct window.
    • Improve the pre-publish format suggestion panel with clearer messages and a confirmation after applying a format.
    • Podcast episodes now respect the configured object type setting instead of always being sent as “Note”.
    • Show reaction action buttons even when a post has no reactions yet.

    Fixed

    • ActivityPub endpoints that surface comment, reply, like, share, and remote-reply metadata now honor the parent post’s visibility setting.
    • Added validation for SSE access tokens passed via query parameter.
    • Fix account migration (Move) not working when moving back to an external account.
    • Fix a fatal error during activity delivery when the outbox item has been deleted.
    • Fix a fatal error when receiving activities with a non-string language property.
    • Fix a fatal array_keys(null) in Comment::get_comment_type_slugs() that could take down any request where a third-party plugin transitioned a custom comment type before add_comment_type() had been called.
    • Fix a missing script dependency notice on the admin page in WordPress 6.9.1 and later.
    • Fix BuddyPress @mention filter corrupting Fediverse Followers and Following blocks.
    • Fix cleanup jobs silently doing nothing on sites where purge retention options were not set.
    • Fix comments on remote posts being incorrectly held in moderation.
    • Fix double-encoded HTML entities in post titles on the Fediverse Stats dashboard.
    • Fixed an issue where quote authorization stamps could reference unrelated posts.
    • Fixed double-encoding of special characters in comment author names on updates.
    • Fixed emoji shortcode replacement to handle special characters in emoji names correctly.
    • Fix fatal error when other plugins hook into the user agent filter expecting two arguments.
    • Fix Fediverse Preview showing the standard web view instead of the ActivityPub preview for draft posts.
    • Fix OAuth authentication failing for local development clients using localhost subdomains.
    • Fix performance regression from reply-exclusion filter by skipping it for queries targeting non-ActivityPub post types.
    • Fix Reader feed failing to load with newer WordPress versions.
    • Fix remote actor avatars getting stuck on broken URLs when the original image becomes unavailable.
    • Fix Site Health check showing an empty error message when the WebFinger endpoint is not reachable.
    • Fix the Fediverse profile “Joined” date showing the oldest post date instead of when the site started federating.
    • Fix the Fediverse profile showing an inflated post count by excluding incoming comments from the total.
    • Fix Update handler using stale local actor data instead of the activity payload.
    • Improved HTTP Signature validation for requests with a missing Date header.
    • Only allow S256 as PKCE code challenge method for OAuth authorization.
    • Prevent third-party plugin UI elements and scripts from appearing in federated content.
    • Require signed peer requests for the followers synchronization endpoint per FEP-8fcf.
    • Show a styled error page instead of raw technical output when an OAuth application cannot be reached during authorization.
    • Strip private recipient fields from all outgoing activities to prevent leaking private audiences.
    • Sync ActivityPub blog actor settings via Jetpack.
    • Use ap_actor post ID for remote account IDs instead of remapping URI strings.
    • Use safe HTTP request for signature retry to prevent requests to private IP ranges.
    • Validate emoji updated timestamps before storing them.

    Get It

    Download from WordPress.org or grab it on GitHub.

    A huge thank you to everyone who contributed code, testing, bug reports, and ideas to this release.

    Update, drop a stats block into your next recap post, and let us know what you think. Which number surprised you most? Which Fediverse app are you most excited to try with your blog?

  • 8.0.0 โ€” Smash That Like Button

    Wapuu in a space suit floats in space assembling a glowing profile layout made of blocks, placing a โ€œFollowโ€ button while reaction icons for Like and Boost hover nearby.

    Every major version is a milestone, and 8.0.0 is no exception. Your WordPress blog just became a two-way street in the Fediverse. Visitors can like and boost your posts directly on your site. Media from federated replies is handled more reliably, and new block patterns make it easy to drop ActivityPub features into your pages.

    Like and Boost, Right From Your Blog

    The Fediverse Reactions block now has optional Like and Boost action buttons, inline with each reaction group. When a visitor clicks one, a modal opens where they can enter their Fediverse handle or copy the post URL to interact from their home server.

    Like this post modal dialog on activitypub.blog showing two ways to interact: a copyable Post URL field and a "Your Profile" field where visitors can enter their Fediverse handle.

    The plugin remembers the visitor’s profile in their browser, so the second time around it’s even faster. And for folks who aren’t familiar with how the Fediverse works, each modal now includes a collapsible “Why do I need to enter my profile?” help section that explains the open social web in plain language.

    This dramatically lowers the friction for cross-platform engagement.

    Block Patterns and Templates

    Setting up a Fediverse-ready profile page used to mean manually assembling Follow Me, Extra Fields, and Followers blocks. Not anymore.

    We’ve added a “Fediverse” block pattern category with four pre-configured layouts:

    • Author Profile with Follow, a compact profile card.
    • Fediverse Follow Page, a full-page follow experience.
    • Author Header with Follow, great for author archive headers.
    • Fediverse Sidebar, drop it into any sidebar or widget area.

    If you’re running a block theme on WordPress 6.7+, there’s also a new Author Archive (Fediverse) block theme template ready to go.

    Publish Smarter With Post Format Suggestions

    A new pre-publish panel now analyzes your post content and suggests an appropriate post format when your object type is set to “Post Format.” Got a post that’s mostly images? It’ll nudge you toward the Image format. A video post? Video format.

    WordPress block editor pre-publish panel showing post format suggestions. The sidebar displays "Suggestion: Use a post format" and "Suggestion: Add Tag" options, with the Fediverse section expanded      
  recommending to "Set format to Image" because the post contains an image, making it visible on platforms like Pixelfed. A checkbox for "Always show pre-publish checks" is enabled at the bottom.

    This matters because media-focused Fediverse platforms like Pixelfed and Vernissage display Notes differently than Articles, so choosing the right format means your content looks its best everywhere it lands.

    Community Snippets

    We’ve added a snippets/ folder to the GitHub repository, a home for lightweight, community-contributed extensions that don’t belong in the core plugin but are too useful to lose. The first batch includes:

    • FediBlog Tag, automatically adds #FediBlog to standard blog posts for better Fediverse discovery.
    • Locale from Tags, derives post locale from taxonomy tags.
    • Bot Account, marks your profile as automated and displays a “BOT” badge in the Fediverse.
    • Blockless ActivityPub, renders Fediverse reactions as pure server-side HTML, no JS required.
    • Photon CDN, serves cached remote media through Jetpack’s Photon CDN for faster delivery.

    Got a snippet of your own? Check out the snippets folder and send a PR.

    Smarter Media Caching

    Under the hood, we’ve rebuilt how the plugin handles remote media, avatars, emoji, images, audio, and video from across the Fediverse. Instead of importing everything into the WordPress Media Library at insert time, media is now wrapped in custom blocks and cached lazily at render time.

    What does that mean for you? Faster processing of incoming content, less disk usage, and better rendering of audio and video attachments. Original remote URLs are preserved in block attributes, so caches can be regenerated without data loss. If you’re using Jetpack’s Site Accelerator, that works too, the new system is built filter-first.

    For site admins, there are new CLI commands to keep things tidy:

    wp activitypub cache status
    wp activitypub cache clear

    Minimum PHP 7.4

    With WordPress 7.0 deprecating PHP 7.2 and 7.3, we’ve raised the minimum requirement to PHP 7.4. This lets us clean up compatibility polyfills and use more modern PHP features going forward. If you’re still on an older version, update your PHP before updating the plugin.

    Changelog

    Added

    • Add a help section to interaction dialogs explaining the Fediverse and why entering a profile is needed.
    • Add a notice on the Settings page to easily switch from legacy template mode to automatic mode.
    • Add a pre-publish suggestion that recommends a post format for better compatibility with media-focused Fediverse platforms.
    • Add a Site Health check that warns when plugins are causing too many federation updates.
    • Add backwards compatibility for the ACTIVITYPUB_DISABLE_SIDELOADING constant and activitypub_sideloading_enabled filter from version 7.9.1.
    • Add bot account snippet that marks ActivityPub profiles as automated accounts, displaying a “BOT” badge on Mastodon and other Fediverse platforms.
    • Add Cache namespace for remote media caching with CLI commands, improved MIME validation, and filter-based architecture.
    • Add federation of video poster images set in the WordPress video block.
    • Add Locale from Tags community snippet.
    • Add optional Like and Boost action buttons to the Fediverse Reactions block, allowing visitors to interact with posts from their own server.
    • Add pre-built Fediverse block patterns for easy profile, follow page, and sidebar setup.
    • Add snippet for blockless fediverse reactions.
    • Add wp activitypub fetch CLI command for fetching remote URLs with signed HTTP requests.

    Changed

    • Improved active user counting for NodeInfo to include all federated content types and comments.
    • Improve language map resolution to strictly follow the ActivityStreams spec.
    • Superseded outbox activities are now removed instead of kept, reducing clutter in the outbox.
    • The minimum required PHP version is now 7.4.

    Fixed

    • Accept incoming activities from servers that use standalone key objects for HTTP Signatures.
    • Fix a crash on servers where WordPress uses FTP instead of direct file access for media caching.
    • Fix a crash when receiving posts from certain federated platforms that send multilingual content.
    • Fix automatic cleanup of old activities failing silently on sites with large numbers of outbox, inbox, or remote post items.
    • Fix comment count to properly exclude likes, shares, and notes.
    • Fix follow button redirect from Mastodon not being recognized.
    • Fix modal overlay not covering the full screen on block themes.
    • Fix outbox invalidation canceling pending Accept/Reject responses to QuoteRequests for the same post.
    • Fix QuoteRequest handler to derive responding actor from post author instead of inbox recipient.
    • Fix reactions block buttons inheriting theme background color on classic themes.
    • Fix reactions block layout on small screens and remove unwanted button highlight when clicking action buttons.
    • Fix signature verification rejecting valid requests that use lowercase algorithm names in the Digest header.
    • Fix soft-deleted posts being served instead of a tombstone when the post is re-saved.
    • Improve compatibility with federated services that use a URL reference for the actor’s public key.
    • Improve handling of all public audience identifiers when sending activities to followers and relays.
    • Prevent private recipient lists from being shared when sending activities to other servers.

    Get It

    Download from WordPress.org or grab it on GitHub. Remember to check your PHP version first โ€” 7.4 or higher is now required.

    A huge thank you to everyone who contributed code, testing, bug reports, and ideas to this release. Special thanks to @kraft, @jeremy, and @futtta for their snippet contributions.

    Update, try out those Like and Boost buttons, and let us know what you think โ€” what’s the feature you’ve been waiting for? What would you like to see next?

  • 7.9.0 โ€” Spring Cleaning ๐Ÿชฃ๐Ÿงน

    Every now and then, itโ€™s time to tidy things up.

    An image of a Wapuu in a space-suite, cleaning the milky way.

    Version 7.9.0 is a spring-cleaning release: fewer rough edges, better defaults, and a lot of small improvements that make the plugin feel smoother and more predictable in daily use. No big rewrites โ€” just many thoughtful fixes and refinements.

    And yes, thereโ€™s one change youโ€™ll notice immediately.

    Emoji, But Make Them Emoji ๐ŸŽบ

    Custom emoji from the Fediverse now finally show up asโ€ฆ emoji.

    Instead of seeing placeholders like :sad_trombone:, federated posts now render the actual custom emoji they were meant to display. Itโ€™s a small detail, but one that makes conversations feel more human, and a lot less like reading raw markup.

    A screenshot of a comments section of a WordPress blog, showing comments with custom emojis.

    Sometimes polish really is about the little things.

    A Healthier, More Predictable Setup ๐Ÿฉบ

    A quiet but important part of this release focuses on making things fail less often โ€” and recover better when they do.

    Version 7.9.0 adds new Site Health checks to detect common issues that can silently break federation, including missing scheduled events and security plugins blocking REST API access. When possible, the plugin now attempts to repair these problems automatically.

    We also tightened up activity scheduling and outbox processing to reduce edge cases where federation could stall or behave inconsistently. These changes donโ€™t add new buttons or screens, but they make ActivityPub for WordPress more resilient in real-world setups.

    Following, Reading, and the Social Graph ๐Ÿ‘ฅ

    This release also includes a few improvements that move us one step closer to full Reader support โ€” while keeping things deliberately cautious.

    With the new Fediverse Following block and Extra Fields improvements, itโ€™s now much easier to build a proper profile page in WordPress, similar to what many other Fediverse platforms offer. You can surface who you follow and how you present yourself, using blocks instead of custom code.

    A screenshot of the Following-Block in the Editor.

    The Reader itself remains behind a feature flag and is still considered experimental. This release focuses on preparing the surrounding pieces โ€” navigation, feedback, and presentation โ€” rather than enabling it by default.

    If youโ€™re curious about where this is heading, you can enable the feature and try it out today. As with earlier previews, feedback is very welcome and helps shape what full Reader support will eventually look like. (See the initial Reader announcement for upgrade notes and details.)

    Changelog ๐Ÿชต

    Added

    • Add Fediverse Following block to display accounts the user follows.
    • Add global default quote policy setting that can be overridden per-post.
    • Add health check to verify scheduled events are registered and auto-repair if missing.
    • Add location support for posts using WordPress Geodata post meta fields.
    • Add Podlove Podcast Publisher integration for podcast episode federation.
    • Add site health check to detect when security plugins block REST API access.
    • Add Social Web item to the admin bar for quick access to the reader.
    • Add soft delete support with Tombstone objects when post visibility changes to local/private.
    • Custom emoji from the fediverse now show up instead of looking like :sad_trombone:.
    • Make actor table columns filterable.
    • Send Add/Remove activities when changing a post’s sticky status to improve interoperability with the featured collection.
    • Show warning instead of reply link when logged-in user cannot federate replies to fediverse comments.

    Changed

    • Defer outbox processing to async execution to improve publishing performance.
    • Move Jest mocks to tests/js directory for better project organization.
    • Remove redundant __nextHasNoMarginBottom props now that @wordpress/components 32.0.0 defaults to true.
    • Revert to synchronous outbox processing with improved timeout handling and WebFinger error caching.

    Fixed

    • Don’t filter the comment query when type__not_in has been set.
    • Filter comments on ActivityPub posts from REST API responses.
    • Fix duplicate media attachments when featured image is also in post content.
    • Fixed Federated Reply block embed appearing squished at 200×200 pixels for same-site embeds by passing explicit width to wp_oembed_get().
    • Fixed pagination metadata leaking when “Hide Social Graph” privacy setting is enabled.
    • Fix migration activities not being scheduled for federation due to hook registration timing.
    • Fix older comments with empty type not being federated.
    • Fix quote requests from Mastodon not being received.
    • Fix users not being accessible after re-enabling ActivityPub capability.
    • Hide admin REST API endpoints from discovery index.
    • Show informational notice when trying to follow an already-followed account.
    • Skip fetching public audience identifiers which are not actual recipients.

    Downloads

    Thank You ๐Ÿ’›โœจ

    A huge thank you to everyone who tested early builds ๐Ÿงช, filed bug reports ๐Ÿž, shared feedback ๐Ÿ’ฌ, reviewed pull requests ๐Ÿ”, or helped improve docs ๐Ÿ“š. Your input directly shaped many of the fixes and cleanups in this release.

    And thanks to everyone running ActivityPub for WordPress out in the wild ๐ŸŒ โ€” thatโ€™s where spring cleaning really shows what needs sweeping ๐Ÿงน.

    You make this project better, one emoji (and one fix) at a time ๐Ÿฅฐ

  • 7.8.0 – Happy Holidays

    7.8.0 – Happy Holidays

    As the year winds down, weโ€™ve wrapped up a release that brings better moderation tools, a new way to display reactions, and a small surprise, just in time for the holidays.

    Stronger Tools for Moderation

    Moderation can be hard work, especially on the Fediverse, where conversations flow in from all directions. This release introduces new tools that help you stay in control with less manual effort.

    You can now subscribe to shared blocklists and let the plugin keep them up to date automatically. Subscribed lists are synced on a weekly cadence, so changes made upstream are reflected on your site without you having to lift a finger.

    A screenshot of the block list subscription feature.

    On top of that, weโ€™ve added a bulk domain blocklist importer. You can upload a CSV or plain text file, including Mastodon-style exports, and quickly add large numbers of domains at once. To make it even easier to get started, the importer includes a one-click option for the popular community-maintained IFTAS DNI list (@about.iftas.org).

    A screenshot of the block list importer feature.

    Together, these features make moderation more scalable and less stressful, so you can spend more time engaging and less time firefighting.

    Reactions, Your Way

    Reactions are a big part of how conversations feel alive on the Fediverse, and now you have more control over how they appear on your site.

    The Fediverse Reactions block gained a new Summary display style. Instead of showing a facepile of avatars, this option presents reactions as clean, inline counters for comments, likes, boosts, and replies. Itโ€™s a great fit for minimal layouts, feeds, or sites where avatars are disabled.

    A screenshot of the compact reactions.

    You can switch between the classic facepile and the new summary style directly in the block settings. And if avatars are turned off in discussion settings, the block automatically falls back to the summary view.

    A Sneak Peek at the Reader (Experimental)

    One more thing, for the curious among you, there’s now an early preview of the ActivityPub Reader, hidden behind a feature flag in the Advanced settings tab. If you don’t see it yet, open Screen Options at the top right of the ActivityPub settings page, check “Advanced Settings,” and save. That reveals the Advanced tab where you can enable the Reader.

    A screenshot of the reader implementation.

    When enabled, this adds a new โ€œSocial Webโ€ submenu to your Dashboard menu item. An place where you can read posts and shares from accounts you follow, turning your WordPress admin into a lightweight Fediverse reader.

    Because this is still very much a work in progress, the Reader is disabled by default and clearly marked as experimental. The UI, behavior, and feature set will change significantly in future releases as we explore what a great native Fediverse reading experience inside WordPress could look like.

    If you enjoy testing new ideas, weโ€™d love to hear your feedback, whether itโ€™s bug reports, rough edges youโ€™ve noticed, or ideas about what this Reader should become. Early input helps shape where this goes next, so feel free to share your thoughts in whatever form works best for you.

    Changelog

    Added

    • Add blocklist subscriptions for automatic weekly synchronization of remote blocklists.
    • Add compact display style to Reactions block that hides avatars.
    • Add domain blocklist importer for bulk importing blocked domains.
    • Add image optimization for imported attachments (resize to 1200px max, convert to WebP).
    • Add local caching for remote actor avatars.
    • Add relay mode to forward public activities to all followers.
    • Add scheduled cleanup for remote posts, preserving posts with local user interactions.
    • Add site health check to warn when DISABLE_WP_CRON may impact ActivityPub functionality.
    • Add Social Web Reader for browsing ActivityPub content directly in WordPress admin.
    • Delete remote posts on plugin uninstall.
    • Mastodon importer now imports self-replies as comments, preserving thread structure.

    Changed

    • Cache expensive operations in Post transformer to improve performance.
    • Improve performance and reliability of @-mention detection.
    • Reduce federated content size by removing unnecessary HTML attributes.
    • Skip downloading video and audio attachments, embedding remote URLs directly to avoid storage limits.
    • Use stable term_id-based IDs for Term transformer to ensure federation consistency.
    • Wrap blocked domains and keywords tables in collapsible details element.

    Fixed

    • Respect WordPress “show avatars” setting for remote actor avatars.
    • Ensure NodeInfo accurately represents site administrators to the Fediverse.
    • Fediverse Followers block now works correctly when the “Hide Social Graph” privacy option is enabled.
    • Fix NodeInfo documents to comply with schema specification.
    • Follow Me block button-only style now respects width settings from the inner Button block.
    • Preserve whitespace inside preformatted elements when federating content.

    Downloads

    Holiday Thanks

    A special thank-you to everyone who joined us during the recent office hours โ€” for the questions, the thoughtful feedback, and the great conversations about where ActivityPub for WordPress should go next. Talking directly with you helps shape these releases more than any roadmap ever could.

    See you in 2026 โ€” and happy holidays!

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

  • 7.6.0 โ€” Command, Sync & Go

    This release puts speed and control right at your fingertips. Whether youโ€™re jumping between settings, syncing followers, or handling quotes in real time, version 7.6.0 makes managing your Fediverse presence faster and more intuitive than ever.

    Wapuu, the yellow WordPress mascot, pilots a small spaceship shaped like the WordPress โ€˜Wโ€™ through a glowing Fediverse nebula. Light trails and floating ActivityPub icons surround the ship, symbolizing fast, effortless navigation through connected worlds.

    Navigate in a Flash

    Say hello to the quickest way to move around your ActivityPub settings.

    In preparation for WordPress 6.9, which brings the Command Palette (Cmd/Ctrl + K) to the entire wp-admin, the plugin now adds its own commands, giving you instant, keyboard-driven access to your workflows anywhere in WordPress.

    Type โ€œActivityPubโ€ and youโ€™ll see context-aware commands that adapt to your site setup and user role. Whether youโ€™re managing a blog actor or a user actor, you can open followers and following lists, check blocked actors, jump straight to your settings, or even search and edit extra fields โ€” all without ever leaving the Command Palette.

    A screenshot of the Command Palette in action.

    Every command includes the ActivityPub icon for easy recognition. Just press Cmd + K or Ctrl + K, start typing, and go โ€” itโ€™s the smoothest way yet to pilot your Fediverse setup.

    Stay in Sync Across the Fediverse

    Your follower lists now stay accurate wherever you connect.
    With support for Follower Synchronization (FEP-8fcf), the plugin automatically keeps your followers collection in step with other servers โ€” even when things drift out of sync.

    If differences appear, background tasks quietly reconcile them, keeping your lists clean and consistent. The result is a smoother, more reliable experience across the entire Fediverse โ€” no manual fixes required.

    Speed When It Counts

    Quoted posts and follow confirmations now move at the speed of conversation.

    A new immediate Accept dispatch system sends responses as soon as theyโ€™re created, instead of waiting for the next scheduled queue.

    That means faster follow confirmations and quicker quote acknowledgments, making interactions feel more natural across the Fediverse. Behind the scenes, those Accept messages go straight to the right inboxes โ€” including mentioned and replied-to users โ€” while a scheduled backup ensures full compatibility with slower servers.

    Itโ€™s a smart balance between speed and reliability, helping your posts and follows appear almost instantly.

    Privacy, Your Way

    Want to keep your social graph private? You can now hide your followers and following lists from public view while keeping all relationships intact. Your followers still follow โ€” theyโ€™re just hidden when you prefer a little more privacy.

    Full Changelog

    Added

    • Add bidirectional transforms between reply and embed blocks for improved user experience.
    • Add Command Palette integration for quick navigation to ActivityPub admin pages
    • Added a new ap_object post type and taxonomies for storing and managing incoming ActivityPub objects, with updated handlers
    • Added a privacy option to hide followers and following lists from profiles while keeping follow relationships intact.
    • Added a scheduled task and setting to automatically purge old inbox items, helping maintain site performance and storage control.
    • Added fallback to trigger create handling when updates fail for missing posts or comments, ensuring objects are properly created.
    • Added immediate dispatch for Accept activities to speed up quoted posts while keeping scheduled processing for compatibility with other instances.
    • Added new configuration options to better manage traffic spikes when federating posts, allowing finer control over retry limits, delays, and batch pauses.
    • Added support for FEP-8fcf follower synchronization, improving data consistency across servers with new sync headers, digest checks, and reconciliation tasks.
    • Add LiteSpeed Cache integration to prevent ActivityPub JSON responses from being cached incorrectly. Includes automatic .htaccess rules and Site Health check to ensure proper configuration.
    • Add quote visibility setting for Classic Editor users.
    • Add unified attachment processor for handling ActivityPub media imports from both remote URLs and local files, with automatic media block generation and Classic Editor support.
    • Integrate Federated Reply block with WP.com Reader’s post share functionality, allowing users to reply to ActivityPub posts directly from the Reader.

    Changed

    • Added support for FEP-3b86 Activity Intents, extending WebFinger and REST interactions with new Create and Follow intent links.
    • Added support for the latest NodeInfo (FEP-0151), with improved federation details, staff info, and software metadata for better ActivityPub compliance.
    • Extended inbox support for undoing Like, Create, and Announce activities, with refactored undo logic and improved activity persistence.
    • Improved Classic Editor integration by adding better media handling and full test coverage for attachments, permissions, and metadata.
    • Improved delivery of public and follower activities by expanding local recipient handling to include all ActivityPub-capable users and follower collections.
    • Improved inbox performance by batching and deduplicating activities, reducing redundant processing and improving handling during high activity periods.
    • Improved REST API responses with smarter context handling.
    • Improved REST collection pagination by using explicit total item counts for more accurate results.
    • Moved default visibility handling from the server to the editor UI, ensuring consistent and flexible ActivityPub visibility settings across both block and classic editors.
    • Prevented self-announcing by ignoring announces from the blog actor, while still processing announces from user and external actors.
    • Refactored activity handling to support multiple recipients per activity, allowing posts and interactions to be linked to several local users at once.
    • Refactored avatar handling into a new system that stores and manages avatars per remote actor, improving reliability and preparing for future caching support.
    • Refactored the inbox system to use a shared inbox, storing activities once with multiple recipients for improved efficiency and reduced duplication.
    • Reorganize integration loader and move Stream integration into dedicated folder structure.
    • Reply posts: do not display post title before @mentions in posts that are replies to somebody else
    • Simplified configuration by always enabling the shared inbox and removing its separate setting, UI field, and related logic.
    • Simplified inbox storage settings, allowing certain activities (like deletes) to be skipped to reduce unnecessary database use.
    • Simplify follow() API return types to int|WP_Error for better predictability.
    • Updated inbox handling to support multiple users receiving the same activity and improve overall data consistency.
    • Updated mailer hooks to send notifications only when activities are successfully handled, preventing emails for failed events.
    • Update plugin short description to be more user-friendly.

    Fixed

    • Reply block now properly validates ActivityPub URLs before setting inReplyTo field
    • Added a safeguard to ensure the plugin works correctly even when no post types are selected.
    • Added a safety check to prevent errors when resolving comment author hostnames without a valid IP address.
    • Fixed activity processing to handle QuoteRequest and other edge cases more reliably.
    • Fixed an issue with post content templates to ensure the correct fallback is always applied.
    • Fixed fatal error when transformer Factory receives WP_Error objects.
    • Fixed HTML entity encoding in extra field names when displayed on ActivityPub platforms
    • Fixed typo in example, improve quoting description.
    • Fix Following table error message to display user input instead of empty string when webfinger lookup fails.
    • Fix infinite recursion when storing remote actors with mentions in their bios
    • Fix local inbox delivery to use internal REST API instead of HTTP, enabling local follows and proper boost counting.
    • Fix logic errors in Move handler: remove redundant assignment and fix variable name collision.
    • Fix public key retrieval for GoToSocial profiles with path-based key URLs.
    • Improved actor resolution by prioritizing blog actor detection before remote actor checks and refining home page URL handling.
    • Improved handling of empty fields for better compatibility with Pixelfed and more consistent fallback behavior across actor names, URLs, and related data.
    • Improved hashtag encoding for consistent formatting.
    • Improved Jetpack integration by initializing it during the WordPress startup process.
    • Refactored Mastodon import handling to use consistent array-based data, improving reliability and compatibility across all import scenarios.

    Downloads

    Thanks, Crew!

    Big thanks to everyone who contributed code, feedback, and testing to make this release possible. You keep ActivityPub evolving with every version.

    Version 7.6.0 is now live โ€” update today and enjoy lightning-fast navigation, smarter synchronization, and smoother federation! โค๏ธ

  • 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.4.0 – More Control, Less Waiting

    Fediverse life just got a little easier! This release is all about giving you more confidence in how you manage your users โ€” and making your follower, following, and block lists feel lightning fast. Letโ€™s dive in.

    Wapuu, the yellow WordPress mascot, floats in space wearing a gray astronaut suit. In front of Wapuu is a spaceship control panel with the WordPress logo and the Fediverse logo, each with checkboxes. Below them is a large glowing orange โ€˜CONFIRMโ€™ button. Wapuu points toward the panel, symbolizing making a choice.

    Clean Breaks, Done Right

    Until now, removing someoneโ€™s ActivityPub capability in WordPress only affected their local account. Their presence in the Fediverse lingered on. With this release, youโ€™re in charge of what happens next.

    When you remove ActivityPub capabilities from users on your site, youโ€™ll now see a confirmation step:

    A screenshot of the confirmation step that shows after removing the ActivityPub capability from users.

    With this change, you can decide whether youโ€™re simply adjusting roles inside WordPress, or making a complete exit across the network.

    Weโ€™ve also expanded delete handling to cover more scenarios:

    • Comment removal: Permanently deleted federated comments now send a Delete activity across the Fediverse.
    • Virtual deletes & restores: You can now remove objects from the Fediverse without deleting them locally โ€” and bring them back if needed.
    • WP-CLI command for Actors: A new command makes it easier to manage and clean up Actors directly from the command line.

    Together, these tools make sure your Fediverse presence stays consistent with the choices you make in WordPress.

    Lists That Load in a Snap

    Managing your Fediverse connections shouldnโ€™t feel slow โ€” and now it doesnโ€™t. The follower, following, and block lists are noticeably faster and more reliable in this release.

    Behind the scenes, we cleaned up and centralized how account information is resolved. Instead of each list handling things in its own way, they now all share a single, streamlined method with built-in caching. That means less duplication, less waiting, and a smoother experience every time you browse your lists โ€” even on larger sites.

    Full Changelog

    Added

    • Add activitypub_json REST field for ap_actor posts to access raw JSON data.
    • Add Delete activity support for permanently deleted federated comments.
    • Added a new WP-CLI command to manage Actors.
    • Added confirmation step for bulk removal of ActivityPub capability, asking whether to also delete users from the Fediverse.
    • Adds support for virtual deletes and restores, allowing objects to be removed from the fediverse without being deleted locally.
    • Add Yoast SEO integration for media pages site health check.
    • Optimized WebFinger lookups by centralizing and caching account resolution for faster, more consistent handling across lists.

    Changed

    • Clarified the ‘attachment’ post type description to explain it refers to media library uploads and recommend disabling federation in most cases.
    • Hide site-wide checkbox in block confirmations when accessed from ActivityPub settings page.
    • Improved ActivityPub compatibility by aligning with Mastodonโ€™s Application Actor.
    • Itโ€™s now possible to reply to multiple posts using multiple reply blocks.
    • Refactored Reply block to use WordPress core embed functionality for better compatibility and performance.
    • Use wp_interactivity_config() for static values instead of wp_interactivity_state() to improve performance and code clarity.

    Deprecated

    • ActivityPub now defaults to automated object type selection, with the old manual option moved to Advanced settings for compatibility.

    Fixed

    • Fix content visibility override issue preventing authors from changing visibility on older posts.
    • Fix PHP warning when saving ActivityPub settings.
    • Fix query args preservation in collection pagination links.
    • Fix release script to catch more ‘unreleased’ deprecation patterns that were previously missed during version updates.
    • Fix reply block rendering inconsistency where blocks were always converted to @-mentions in ActivityPub content. Now only first reply blocks become @-mentions, others remain as regular links.
    • Stop sending follow notifications to the Application user, since system-level accounts cannot be followed.

    Downloads

    Thanks

    High-fives to everyone who helped chart the course, whether you coded, tested, spotted bugs, or just cheered from the sidelines. You keep this ship flying! ๐Ÿš€

    Version 7.4.0 has just landedโ€”jump in and tell us how it feels out there in the Fediverse.

  • 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.2.0 – Follow ups

    A Wapuu in a spacesuit, equipped with a tool, repairing a spaceship engine.

    Weโ€™ve rolled out an update that makes sharing content to the fediverse via ActivityPub even betterโ€”especially when it comes to images in comments. Now, when you include an HTML <img> tag that points to a file in your WordPress media library, that image is bundled as a proper attachment in the ActivityStreams payload. This means your followers on other platforms will see both your comment and its image, making conversations more vivid and engaging.

    To protect your privacy and security, only images hosted in your own WordPress media library are supported. Images from external sources are intentionally skipped.

    Smoother Following, Better Interactions

    If youโ€™ve turned on the “Following User Interface” feature in the advanced settings, youโ€™ll see a few nice improvements. The followers list now shows whether youโ€™re already following someoneโ€”and if not, you can follow them back with just one click.

    Followers list screenshot showing the "Follow Back" button.

    Weโ€™ve also made it easier to follow people from other sites. When you click “Follow” on someone elseโ€™s blog, youโ€™ll now be taken to your own site to complete it. It keeps things simple and familiar, even when you start following someone from another site.

    Better Support for Multibyte Text

    Finally, weโ€™ve improved how multibyte characters (like those in Greek and other non-Latin scripts) are handled when generating post summaries for the fediverse. Weโ€™ve replaced byte-based string functions with multibyte-safe alternatives and reordered text processing steps to avoid errors.

    Full Changelog

    Added

    • Add image attachment support to federated comments – HTML images in comment content now include proper ActivityStreams attachment fields.
    • Link to the following internal dialog for remote interactions, if the feature is enabled.
    • The followers list now shows follow status and allows quick follow-back actions.
    • Trigger Actor updates on (un)setting a post as sticky.
    • You can now use OrderedCollections as starter packs โ€” just drop in the output from a Follower or Following endpoint.

    Changed

    • Ensure that tests run in production-like conditions, avoiding interference from local development tools.
    • Moved HTTP request signing to a filter instead of calling it directly.

    Fixed

    • Allow non-administrator users to use Follow Me and Followers blocks.
    • Correct linking from followers to the following list.
    • Fix avatar rendering for followers with missing icon property.
    • Fix multibyte character corruption in post summaries, preventing Greek and other non-ASCII text from being garbled during text processing.
    • Informational Fediverse blocks are no longer rendered when posts get added to the Outbox.

    Downloads

    Thank you!

    Huge thanks to everyone who shared code, gave feedback, tested, or simply cheered us on! Together, weโ€™re building a more connected fediverse, one release at a time. โค๏ธ

    We’ve just released version 7.2.0, give it a spin and let us know what you think!