Tag: WordPress

  • Radical Speed Month — The Reader Meets the Fediverse

    Wapuu in a space suit floats inside a spaceship, reading a newspaper with a “Radical Speed Month” headline and a yellow update graphic, while message cards for RSS, ActivityPub, and ATProto drift in through a window showing space.

    This post is about work happening on WordPress.com, specifically the Reader, the long-running subscription-and-reading surface that’s been part of WordPress.com since 2008. It’s a sibling effort to the ActivityPub plugin, not a feature of it. We think it matters to plugin readers anyway, because the two pieces are converging, and the converging point is what we’ll be working on next.

    Two weeks ago, Automattic kicked off something internally called Radical Speed Month, a four-week sprint where small teams ship fast on focused projects. We (@jeremy and @pfefferle) took the chance to spend it on something that’s been sitting at the edge of the Fediverse-and-WordPress conversation for a while: making the WordPress.com Reader speak Fediverse.

    Today is roughly the halfway mark, and the picture is clearer than we expected. Here’s what shipped, what’s in flight, and what’s still ahead.

    The thesis

    The Reader on WordPress.com has held a single, useful role for over a decade: it’s where your subscriptions live. Blogs, podcasts, RSS feeds. What it hasn’t done, yet, is read the open social web. Your Mastodon timeline lives in another app. Your Bluesky timeline lives in a third. The Fediverse is out there, and the Reader stays over here.

    The Radical Speed Month bet: ship three protocol adapters in four weeks, and prove the Reader can become a universal aggregator. RSS / Google Reader API (so any reader app can use WordPress.com as a sync backend), ActivityPub (so Mastodon, Pixelfed, and friends show up natively), and ATProto / Bluesky (because that’s where a real chunk of the social-web conversation has gone). One Reader, every protocol you care about.

    If you’ve been following the ActivityPub plugin for a while, you already know one half of this story, your blog speaking out to the Fediverse. The other half is reading in, and that’s where this month’s work concentrates.

    What’s already landed

    Reader as a sync backend

    Any Google Reader-compatible app can now point at WordPress.com and use it as a sync backend. That includes Reeder, NetNewsWire, ReadKit, lire, Unread, Fiery Feeds, Feed Me, and Read You. The auth onboarding is short, and your subscriptions, read state, and stars sync across whichever app you actually like. We’re working on a setup guide that walks through the steps for the most common apps; it should land soon.

    This wasn’t directly Fediverse work, but it’s part of the same idea: the Reader as a backend, not a destination. If your reading habit lives in a different app, that’s fine. Your subscriptions still live on WordPress.com.

    Bluesky timelines, threads, and profiles

    The Bluesky / ATProto adapter has moved further than the original plan suggested.

    The image shows Jeremy Herves Bluesky profile in the reader.

    You can:

    • Connect a Bluesky account through the Reader’s connections panel, with a Verify step that confirms the handshake works on both sides.
    • Read your Bluesky home timeline as a tab in the Reader, with native rendering for facets, embeds, and quote posts.
    • Follow links inward, opening a thread in the Reader, viewing an author’s profile, browsing their posts / replies / media filter tabs, following a hashtag.
    • Follow and unfollow Bluesky accounts directly from the profile pages.
    • Like posts, repost posts, and reply to posts. A shared composer for replies is in late review.

    The remaining piece on the Bluesky side is quote-posting and deleting your own posts, which we’re shipping together. After that, Bluesky is a complete first-class tab in the Reader.

    Mastodon, the same shape

    Mastodon followed the same pattern: connect, verify, then a steady cadence of small additions like timeline, in-app threads, author profile and feed (with Posts / Replies / Media filter tabs), and tag and hashtag feeds. All of those are live for Mastodon today.

    The image shows Matthias Pfefferles Mastodon profile in the reader.

    What’s still coming on the Mastodon side is the equivalent of the Bluesky interaction work (favourite, boost, reply, quote) built on the same shape that worked for Bluesky. Expect those to land in the second half of this month.

    How this connects to the plugin

    If you read 8.1.0 — By the Numbers, you’ll have noticed a small line in the announcement: the plugin now exposes an ActivityPub API. It’s experimental, behind a feature flag, and lets third-party apps create, edit, and delete posts on your blog the way they would post to a Mastodon account.

    That work isn’t an accident. It’s one half of a bridge, and Radical Speed Month is the other half.

    The Mastodon-in-Reader work that shipped this month is user-level: you connect your Mastodon account once, and the Reader can sync your Mastodon timeline regardless of where your blog lives. That’s a useful starting point, but it’s not the only path forward. The model we’ve been working toward for a year is blog-level: each ActivityPub-enabled WordPress blog as its own social identity inside the Reader, with the plugin providing the actor and the ActivityPub API providing the connection.

    That work is on the schedule for the second half of the month. The radical-speed pace gave us proof first: timelines, threads, profiles, and interactions can all run through one shared pattern, with two networks already validating it. With the pattern in place and the plugin’s ActivityPub API ready to talk to, the blog-level path slots into the same architecture, letting your plugin-enabled blog appear as an ActivityPub identity in the Reader sidebar, with its inbox, its outbox, and its real ActivityPub follow graph. And because the API is part of the ActivityPub standard, the same path works for any Reader or client that speaks it, not just WordPress.com.

    What’s still planned

    A short list of what we’re chasing for the second half of the month and just past it:

    • Quote-posting and delete-your-own-post for both Bluesky and Mastodon, the last pieces of the interaction set.
    • A shared composer that handles replies, quote-posts, and standalone posts across networks. Already in progress on the Bluesky side; Mastodon plugs in next.
    • Disconnect, a clean way to remove a Mastodon or Bluesky connection from the Reader.
    • Blog-level ActivityPub, the design pass and first slices for plugin-enabled blogs as first-class Reader identities. The user-level work proved the pattern; this is where the plugin and the Reader actually meet.
    • Tightening the shared pattern so adding the next network (Threads, Pixelfed, whatever comes after) is incremental work.
    • Wrap-up, a metrics snapshot, an honest retrospective, and the heads-up notes our customer-support folks need before the work goes broad.

    A note on speed

    A month feels short to ship three protocols’ worth of reading, profiles, and interactions. It’s worth saying out loud: this didn’t happen because we worked unsustainable hours. It happened because we sat with the design for months, picked a shape that lets each protocol reuse the same plumbing, and broke the work into pieces small enough that any one was reviewable in a day or two. “Radical speed” turned out to mean: a backlog of careful design, drained quickly.

    What this means for you

    If you run an ActivityPub-enabled WordPress blog, whether on WordPress.com or self-hosted, the practical takeaway is small for now and meaningful soon. The plugin’s ActivityPub API in 8.1.0 is the foundation for your blog showing up as a real social identity inside any Reader or app that speaks the same protocol. The WordPress.com Reader is the first concrete target, but the universality matters: any client that implements the standard can talk to your plugin-enabled blog the same way.

    Already, the work this month means there’s now a Reader on WordPress.com that knows how to read the Fediverse alongside RSS and Bluesky. That’s a meaningful thing to have built, and the bridge from your plugin-enabled blog to that Reader is what the second half of the month is about.

    Tell us what you’d like to see

    We’ll keep posting updates as the month closes out. If you have thoughts on what blog-level ActivityPub in the Reader should look like, what protocols you’d want next, or how the plugin’s ActivityPub API should evolve to make this seamless, leave a comment on the plugin’s GitHub repository or reply on the Fediverse. We read every message.

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

  • Discover more of the Fediverse with tags.pub

    One of the best things about the Fediverse is that conversations happen everywhere, across Mastodon, WordPress, Pixelfed, and dozens of other platforms. One of the trickiest things about the Fediverse is finding those conversations in the first place.

    Wapuu in a space suit floats through a colorful nebula, reaching out to catch glowing hashtag symbols drifting like stars across a wide cosmic background.

    Hashtags have always been the Fediverse’s answer to discovery. But because the network is decentralized, the posts you see for any given hashtag depend on which servers yours already knows about. If nobody on your server follows someone who posted about #WordPressFederation, you’ll never see that post, even though it’s public and out there.

    tags.pub changes that.

    What Is tags.pub?

    tags.pub is a global hashtag server built by the Social Web Foundation, a nonprofit dedicated to growing the open social web, and an organization Automattic is proud to partner with.

    The idea is simple: tags.pub collects publicly posted content from across the Fediverse and redistributes it based on hashtags. When you follow a hashtag account like @photography@tags.pub, you’ll see posts tagged #photography from servers your instance might never have heard of. It fills in the gaps that decentralization naturally creates.

    The project is open source (AGPL-3.0), privacy-conscious, it doesn’t store post content, images, or media, and respects user controls like #NoTagsPub and #NoBots opt-outs.

    How It Works on WordPress.com

    If you’re running a WordPress.com site with the ActivityPub plugin, there’s nothing to configure. tags.pub already works out of the box. Your public posts and their hashtags are discoverable across the Fediverse through tags.pub, and you can follow hashtag accounts from your Following page.

    Connecting a Self-Hosted WordPress Site

    For self-hosted WordPress sites, head to Settings → ActivityPub → Settings and scroll to the Relay section. Add one of these URLs:

    • Inbox: https://tags.pub/user/_____relay_____/inbox
    • Shared Inbox: https://tags.pub/shared/inbox
    A screenshot of the Relay-Settings of the ActivityPub plugin.

    This creates a one-way connection where your server sends public posts to tags.pub for hashtag distribution, and your posts become part of the global hashtag network.

    Following Hashtags

    Once connected, you can also follow specific hashtags by searching for them as accounts. For example, to follow #WordPress posts from across the entire Fediverse, follow:

    @wordpress@tags.pub

    Any publicly tagged post that reaches tags.pub will be boosted by that account into your timeline. When posts are edited or deleted, tags.pub updates accordingly.

    Privacy and Control

    tags.pub is designed with user agency in mind:

    • Opt out anytime by adding #NoTagsPub or #NoBots to your bio, your posts won’t be boosted.
    • Block the domain entirely if you prefer not to interact with the service at all.
    • No content storage, tags.pub doesn’t archive your posts, images, or media. It only maintains boost records.
    • Respects blocks, if someone blocks tags.pub, their content stays out.

    A Step Toward Better Discovery

    Discoverability is one of the areas we’ve identified on our 2026 roadmap as a key challenge, and services like tags.pub are exactly the kind of infrastructure that helps solve it. By connecting WordPress sites to a global hashtag network, your posts can reach people who care about the same topics, even if they’ve never heard of your blog before.

    If you’re already using ActivityPub for WordPress, connecting to tags.pub takes less than a minute. Give it a try and let us know how it works for you. Have you noticed more engagement from the wider Fediverse? We’d love to hear about your experience.

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

  • Roadmap 2026 — Charting the stars of the open social web

    ActivityPub and the Fediverse had a great year in 2025. With that foundation in place, our 2026 roadmap is all about what comes next: better discoverability, richer interactions, and a smoother experience across the open social web.

    Astronaut Wapuu, the yellow WordPress mascot in a dark blue space suit, floats in a starry space scene while holding a glowing cosmic map filled with planets, constellations, and orbital paths.

    As always, this roadmap is not set in stone. Priorities may shift based on community feedback, WordPress developments, and changes across the wider Fediverse. But it should give you a clear sense of where we’re heading this year.

    Increase Findability and Reach

    One of the main themes for 2026 is discoverability. We want WordPress sites to be easier to find, follow, and recommend across the Fediverse.

    FASP Support

    We plan to implement support for Fediverse Auxiliary Service Providers (FASPs).

    FASPs are independent services that enhance Fediverse servers with features such as cross-instance search, recommendations, and spam detection. By integrating with these services, WordPress content can appear in Fediverse discovery tools, making it easier for people to find and follow WordPress blogs.

    This work is already in progress, and you can follow the implementation here:

    https://github.com/Automattic/wordpress-activitypub/pull/2312

    Starter Packs

    Starter Packs are shareable collections of recommended accounts designed to help people discover communities more easily.

    They address the “empty feed problem” by giving new users curated lists of accounts to follow. This makes it easier to find interesting voices and become part of the network more quickly.

    Reader v2

    The next phase of the Reader will focus on deeper interaction and a more complete social experience.

    A screenshot showing the current beta version of the reader.

    Reactions

    We plan to show likes, boosts, and comments directly in the Reader view, so users can see how posts are being received across the network.

    Interactions

    Users will be able to interact with Fediverse content directly from the Reader — including:

    • Commenting on posts
    • Liking posts
    • Boosting posts

    This will make the Reader a fully interactive space, not just a passive timeline.

    Activity Stream

    We’ll introduce an Activity Stream to notify users about important requests and events, such as:

    • Follow requests
    • Starter Pack invitations
    • Other actions that require approval

    Users will be able to accept or decline these directly from the interface.

    Reply Context Import

    We also plan to improve how conversation threads are displayed.

    By parsing reply collections and context from incoming posts, the Reader will be able to fill in missing parts of a discussion, even when some replies were created before the post was indexed. This will make threads feel more complete and easier to follow.

    Direct Messages

    As part of the evolving Reader experience, we’re planning an initial version of Direct Messages.

    This will start as a proof of concept, helping us explore the technical challenges while already delivering a useful and frequently requested feature. Over time, we’ll iterate based on real-world usage and feedback.

    Client-to-Server API

    In addition to server-to-server federation, ActivityPub also defines a Client-to-Server (C2S) API:

    This API is primarily intended for mobile apps and other clients, allowing them to publish content directly to a server.

    For WordPress, this could:

    • Enable mobile or third-party clients
    • Allow WordPress to act as a proxy for other publishing tools
    • Open new workflows for federated content

    The first step will be enabling POST requests to the Outbox endpoint using application passwords.

    This is currently being worked on, and you can track the implementation here:

    https://github.com/Automattic/wordpress-activitypub/pull/2851

    Ongoing Improvements and Interoperability

    Alongside these larger initiatives, we’ll continue working on a wide range of improvements across the plugin.

    A key focus is better interoperability with the broader WordPress ecosystem. We want it to be easier for other plugins to integrate with the Fediverse, so that features like comments, reactions, events, and other content types can work seamlessly across federated networks.

    We’re also continuing to refine the experience for long-form content. WordPress is known for blogging and publishing, and we want to make sure that articles, threads, and conversations feel natural and readable across the Fediverse.

    In addition, we’ll experiment with smaller features and fun ideas, such as activity statistics and other lightweight insights, to help site owners better understand their reach and interactions.

    A dashboard widget that presents an initial Fediverse Stats overview, including monthly comparisons, engagement trends over time, and top supporters.

    These improvements may be smaller in scope than the major roadmap items, but together they play an important role in making WordPress a more capable and enjoyable citizen of the Fediverse.

    Staying Informed

    We’ll continue to share updates throughout the year.

    Each release will include posts about new features and improvements. For larger initiatives, like Reader v2 or Direct Messages, we’ll publish deeper updates as the work evolves.

    As always, your feedback helps shape the future of the plugin and the growing WordPress Fediverse community.

    If you have thoughts or ideas, we’d love to hear them in the comments. 🚀

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

  • WordPress Federation: Recap of 2025

    WordPress Federation: Recap of 2025

    In June, we published our 2025 roadmap: Building the Future of WordPress Federation, outlining the areas we wanted to focus on for the rest of the year.

    As we step into 2026, it’s time to look back at how the roadmap held up and what we shipped in 2025.

    2025 at a Glance

    2025 turned out to be an ambitious and, at times, challenging timeline. Even so, we were able to make meaningful progress across most of the areas we set out to work on.

    Over the course of the year, we introduced the Following feature, significantly expanded moderation tooling, refined actor handling, and improved the reliability and performance of core federation workflows. Along the way, we also shipped a first experimental draft of the Reader, offering an early look at what reading the Fediverse inside WordPress could become.

    Not everything on the roadmap was completed, but we’re happy with how much we were able to achieve and with the foundations that are now in place for what comes next.

    Roadmap

    Below is a review of the roadmap topics we outlined for 2025, what we worked on, and what remains open.

    Followers / Following ✅

    Work in 2025 expanded ActivityPub beyond followers by introducing the Following feature, allowing WordPress sites and users to actively follow accounts on the Fediverse.

    WordPress admin Followings page showing a list of 3 accepted follows: notiz.blog, pfefferle (Matthias Pfefferle), and obenland (Konstantin Obenland). The page includes a Follow form for adding new followers via username or profile link, bulk actions dropdown, and an explanation of the ActivityPub follow request protocol.

    Alongside this, we improved the reliability and performance of both follower and following lists, including better synchronization across instances and faster resolution and display of large collections.

    This work also laid the foundation for later features, such as the experimental Reader.

    Related release posts:

    Actors ✅

    We continued refining how local and remote actors are represented and resolved. Internal refactors reduced special-case handling and improved consistency and performance across actor resolution, including follower, following, and block lists.

    This work primarily affected internal behavior rather than user-facing UI.

    Related release posts:

    Moderation ✅

    In 2025, ActivityPub-specific moderation was significantly expanded. Site-wide and personal blocking now cover domains, keywords, and individual actors, with consistent checks applied to incoming activities.

    User profile settings in WordPress displaying options to block ActivityPub domains and keywords, with fields to add or remove entries.

    We added blocklist subscriptions with scheduled syncing and bulk domain imports, including support for community-maintained lists such as the IFTAS DNI list. Moderation handling was also refined with improved reject behavior for quote interactions.

    Related release posts:

    Reader 🧪

    A screenshot of the reader implementation.

    An experimental Reader UI was introduced behind a feature flag. When enabled, it adds a “Social Web” area to the dashboard where posts and shares from followed accounts can be read inside WordPress.

    The feature is disabled by default and explicitly marked as experimental.

    Related release posts:

    Direct Messages ⏸️

    Direct Messages were not implemented in 2025. This remains an open roadmap topic for future consideration once related foundations mature further.

    Fully Delete Profiles ✅

    Deletion semantics were improved to better support explicit federated cleanup. Delete activities are now sent when WordPress users are removed, and deletion-related handling was aligned across activity processing.

    A CLI-based self-destruct command was introduced to allow site owners to explicitly remove their site’s federated presence.

    Related release posts:

    Client-to-Server API ⏸️

    Client-to-Server API support was not implemented in 2025. No user-facing features shipped under this topic.

    Beyond the Roadmap

    While the roadmap helped guide our focus in 2025, not everything that shipped was planned from the start. Some features emerged from day-to-day usage, feedback, and practical needs that became clearer over time.

    A few of those are worth highlighting.

    Quotes

    Support for quote interactions improved significantly over the year. We refined detection and handling of quoted replies and links, added proper handling for quote comments, and improved how quote permissions are revoked when quoted content is deleted. This made quoted interactions more reliable and consistent across instances.

    Related release posts:

    Onboarding

    We also improved onboarding for new users by adding clearer guidance and better defaults after plugin activation. This helped reduce friction for sites federating for the first time and made initial setup more approachable.

    Related release posts:

    Extra Fields UI

    While not originally planned as a roadmap item, work on Extra Fields resulted in a more flexible and user-friendly UI. New blocks and layout options made it easier to display federated profile data in different formats, allowing themes to choose how much structured information to surface.

    Related release posts:

    Wrapping up

    Looking back, 2025 was a year of steady progress. We focused on the foundations we set out to improve, shipped meaningful features along the way, and left room for unplanned work that addressed real needs as they came up.

    Now we’d love to hear from you: What was your favorite feature this year? What are you most excited about and what do you still miss or hope to see next?

    Your feedback has shaped this project throughout 2025, and it continues to guide where we go from here. We’re already working on our 2026 timeline, and your ideas, experiences, and questions are an important part of that process.

    Thanks for being part of the journey and see you on the Fediverse.

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

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