Tag: Reader

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

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

  • Our 2025 Roadmap: Building the Future of WordPress Federation

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

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

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

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

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

    Followers/Following

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

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

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

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

    Actors

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

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

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

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

    Moderation

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

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

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

    More details:

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

    Reader

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

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

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

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

    Direct Messages

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

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

    Fully delete profiles

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

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

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

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

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

    More details:

    👉 GitHub — User Delete Milestone

    Client-to-Server API (exploration)

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

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

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

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

    Staying Informed

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

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

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