To follow up on my #ActivityPub C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
https://www.stevebate.net/activitypub-client-api-a-way-forward/
activitypub
FEP-9098: Custom emojis has been published.
I am looking for experts/#developers who are familiar with #ActivityPub and who might be willing to chat with me.
I have started talking with parts of my network (mainly in D and NL), about how we could make the #Fediverse more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without #paywalls).
I have some ideas, but now need more expertise and a deeper look under the hood.
Week in Fediverse 2025-03-28
Servers
- Hollo v0.5.5
- Pixelfed v0.12.5
- Manyfold v0.105.0
- Mitra v3.21.0
- Gancio v1.25.0
- Merp Relay v0.2.2
- March 2025: Search Update (Bandwagon)
- PieFed development update Mar 2025
- Funkwhale 2.0 Alpha candidate
- Pinka: A commenting server that bridges static sites to ActivityPub sites
Clients
- Fedilab v3.31.0
- Mastodon for iOS v2025.1
- Pixelfed (React Native) v1.2.0.1
- Voyager v2.26.0
- Interstellar v0.9.0
Tools and Plugins
- Enable Mastodon Apps for WordPress v1.4.1
- Lemmy Community Seeder (LCS): A tool to seed communities, so your users have something in their All feed
- Meh… another comment system
For developers
- Fedify v1.5.0
- ActivityPods v2.1.1
Protocol
- FEP-5711: Inverse Properties for Collections
- Lemmy RFC 0008: Plugins
Articles
- Pixelfed leaks private posts from other Fediverse instances
- But It's Public, You Posted It On the Internet
- New Paradigms in Trust and Safety: Navigating Defederation on Decentralized Social Media Platforms
- PeerTube: the Fediverse’s decentralized video platform (part 2: creator edition)
- Fediverse Report – #109
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/0195ba9c-b3d5-7402-e337-39b10034bcfc
I've made a @newsmast channel for Fediverse development updates. It only contains official platform accounts to keep the feed focused.
Hint - create a new Mastodon List called "Fediverse Platforms", then check the "Hide from Home/Following timelines" option. Add @fedidevs to the list.
Now you have your own personal feed of Fedi Dev news you can check on when you're ready!
Week in Fediverse 2025-07-11
Servers
- Mastodon v4.4.0
- Manyfold v0.117.0
- snac v2.80
- Hollo v0.6.4
- ActivityPub for WordPress v7.0.0
- tootik v0.17.1
- NeoDB v0.11.7.4
- kmyblue v19.0
- wanderer v0.17.2
Clients
- TootRain v2.2.1
- Smither v3.6.1
- Voyager v2.38.0
- Tesseract v1.4.41
Tools and Plugins
- Mastodon Bird UI v2.3.0
- Tangerine UI for Mastodon v2.4
- FBI: Fediverse Block Inspector
Protocol
Articles
- Taking Your Posts With You: Upon the closing of Oliphant.Social
- ActivityPub Client API: A Way Forward
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/0197d746-3ac7-6c66-4dc4-0a32e427d84c
We're thrilled to highlight five outstanding contributions from the Korean Open Source Contribution Academy (#OSSCA) program participants who have been working on #Fedify! Their dedication and effort have significantly enhanced our #ActivityPub server framework.
First up is @nyeong with his monumental #318 PR, implementing a SQLite-based key–value store to address #274. This contribution adds the SqliteKvStore class with full cross-runtime support for Node.js, Deno, and Bun through the new @fedify/sqlite package. His implementation includes atomic operations, TTL support, comprehensive test coverage, and careful attention to SQL injection prevention. This enables developers to use SQLite as a persistent storage backend while maintaining compatibility with Fedify's existing KvStore API—a crucial feature for production deployments!
Next, @crohasang delivered an excellent quality-of-life improvement with #341 PR, fixing #257. He enhanced the CLI to properly respect TTY status and the NO_COLOR environment variable, implementing intelligent color control across all CLI commands. The solution involved switching from @cliffy/ansi/colors to @std/fmt/colors, creating a helper function using Deno.inspect() to handle object formatting, and ensuring colors are correctly disabled when output is redirected to files. This makes the CLI much more pipe-friendly and suitable for automated workflows!
@menele contributed a thoughtful enhancement with #342 PR, addressing #191. She updated the fedify inbox command to display not just the activity type, but also the type of object contained within each activity—transforming output like "Create" into the more informative "Create(Note)" or "Undo" into "Undo(Follow)". This seemingly simple change required making the display function asynchronous to fetch the enclosed objects, significantly improving the debugging experience for developers!
@woaol tackled an important developer experience issue with #329 PR, solving #306. Previously, the fedify init command would often install outdated versions of Fedify packages like @fedify/redis because version numbers were hardcoded in the CLI. They created a getLatestVersion() function that dynamically retrieves package versions from local metadata files, ensuring that developers always get the latest versions of all Fedify packages when initializing a new project. This improvement includes comprehensive test coverage and eliminates the frustration of starting a project with outdated dependencies!
Finally, @kodingwarrior made a significant contribution with #309 PR, implementing #269—NestJS integration! They created the @fedify/nestjs package with a FedifyModule that seamlessly integrates Fedify into NestJS applications. This includes proper middleware implementation, dependency injection support through NestJS's module system, and compatibility with both CommonJS and ESM environments. This opens up Fedify to the large NestJS developer community, making it easier than ever to build ActivityPub-enabled applications with this popular enterprise framework!
These contributions showcase the incredible talent and dedication of the OSSCA participants. From core infrastructure improvements to developer experience enhancements, each contribution makes Fedify better for the entire community. Thank you all for your hard work and welcome to the Fedify contributor family! 🚀
We're looking forward to seeing more amazing contributions from the OSSCA program and the broader community. If you're interested in contributing to Fedify, check out our GitHub repository and join us in building the future of federated social web! 🌟
This is the first checkin I've done with the #ActivityPub API using the new checkin tool I've been working on for the SocialCG geosocial task force (https://swicg.github.io/geosocial/).
It is pretty neat. I will share more info when the tool is working better, but it feels cool.
#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?
I've run into a few roadblocks with mine and I could really use some inspiration 😊
#Wordpress #ActivityPub #selfhosting
Updating Mastodon: 20 minutes
Updating snac2: 2 minutes
A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.
What do you, as a developer, feel is currently missing? What information would make your life a lot easier?
🎉 Huge shoutout to two amazing contributors from Korea's #OSSCA program who've made excellent contributions to #Fedify!
👏 @gaebalgom tackled a tricky terminal compatibility issue in PR #282, fixing the fedify node command's favicon display on terminal emulators without truecolor support (#168). His solution elegantly detects terminal capabilities and falls back to 256-color mode when needed—ensuring a great experience across different environments.
🌟 @joonnot enhanced Fedify's #WebFinger functionality in PR #281 by adding a configurable maxRedirection option to the lookupWebFinger() function (#248). He transformed a hardcoded limitation into a flexible, user-customizable parameter while maintaining perfect backward compatibility.
Both delivered thoughtful, well-implemented solutions that showcase the quality of contributions coming from the OSSCA program. Welcome to the Fedify community!
Loops Studio is built for creators, allowing you to upload new content, review and manage your posts, comments and interactions as well as view analytics!
It just one aspect of the platform that will soon launch with federation support and easy self-hosting.
Follow @loops for updates, or join https://loops.video to be one of the first to experience this 🚀
#loops #loopsStudio #tikTok #fediverse #activityPub #shortVideoSharing
We just released version 5.6.0 of the #ActivityPub plugin for #WordPress
https://wordpress.org/plugins/activitypub/
Some features:
* A Mastodon import (beta)
* Improvements to the Welcome-Page
* Basic Move functionality
* A bunch of Outbox improvements
* A ton of smaller changes and fixes
thanks a lot to @obenland, @mattwiebe and all other contributors!
currently i'm searching a place to talk about #activitypub. i have a plan to create my own social media with #activitypub protocol in #golang.
i'm okay with IRC or XMPP, thanks!
Week in Fediverse 2025-04-04
Servers
- Mbin v1.8.1
- Betula v1.4.0
- ActivityPub for WordPress v5.6.0
- Manyfold v0.106.0
- Mastodon v4.3.7
- Mitra v3.22.0
- NeoDB v0.11.5.6
- Hatsu v0.3.3
- kmyblue v17.4
- Gush! v0.0.15
- Vernissage Server v1.7.0
- Gone surfing (Ghost)
Clients
- Fedilab v3.31.2
- Pachli v2.11.0
- PleromaFE v2.8.0
- TootRain v2.1.1
- Voyager v2.28.0
- Aria v1.0.0
Tools and Plugins
Protocol
- FEP-1042: Peer to Peer Fediverse Identities
- FEP-044f: Consent-respecting quote posts
Articles
- Open-source tools needed for the future of decentralized moderation
- Fediverse Report – #110
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/0195de2c-e094-1ed3-e7fa-aad28ef161cb
大家好啊,又经过了好几个月的开发,#Fread 终于支持了 #Bluesky 平台🚀🚀🚀!
目前 Fread 已经支持了 #Mastodon ,#RSS 以及 Bluesky,大家可以更新到最新版 1.3.0 体验。
当然本次大升级除了对 Bluesky 的支持之外还有很多对 UI/UX 的优化。
未来一段时间会支持同实例多账号登录,同时将一条帖子发布到多个账号。
@board @board@2-5.cc @worldboard @worldboard@2-5.cc
https://play.google.com/store/apps/details?id=com.zhangke.fread
📣 Exciting news! Fedify CLI is now available via Homebrew!
If you're using #Homebrew on macOS or #Linuxbrew on Linux, you can now install our CLI toolchain with a simple command:
brew install fedify
This makes it even easier to get started with building your federated server app. Try it out and let us know what you think!
Loops is built for the people, but we haven't forgot the admins.
We've added some pretty innovative features, like Pages that allow you to add/edit/publish rich pages and optionally add them to the main sidebar nav or footer and limit visibility to guests, users or both.
I appreciate your patience while we prepare Loops for you, and you'll soon see, it was worth the wait 🚀
Added support for scheduled posts (for this to work correctly, users will have to set their time zone, see below).
The user can now select a working time zone. This will be used to correctly parse the local date and time of a scheduled post.
Fixed incorrect poll vote format, which was causing problems in platforms like GotoSocial.
Mastodon API: added support for /api/v1/instance/peers.
Added a new snac-admin helper script (contributed by shtrophic).
In the web UI, posts are separated by the <hr hidden> tag; it's invisible in graphical browsers, but it separates post clearly in text-based browsers.
Some Finnish, Spanish, Czech and Russian translation updates and fixes.
https://comam.es/what-is-snac
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
#snacAnnounces
This release has been inspired by the song Pictures on the Wall by #MichelleGurevich.
More #Geosocial coming..
https://delightful.coding.social/delightful-fediverse-experience/#geosocial-networking
@bonfire request feedback on #UX designs for #Bonfire Geosocial.
https://socialhub.activitypub.rocks/t/please-provide-feedback-on-bonfire-geosocial-ux-designs/5427
The designs may also be inspiring to other devs working on #Geo functionality for the #fediverse and there's opportunity to align approaches for max #interoperability.
People are highly encouraged to start related more general discussion topics on improving protocol support for geosocial-enabled #ActivityPub platforms in the federated forum categories.
🏕️ my adventures in #selfhosting: day 230 (disconnected edition) 🏝️
a micro blog post that celebrates the release of #Ghost v6 - and laments the fact I can’t upgrade to it at the moment (stranded in a remote place with spotty internet).
HUGE congratulations to @index @johnonolan and the whole Ghost team 🥳
I’m starting a countdown and hope I can type “ghost update” in Terminal in 12-13 days or so.
#MySoCalledSudoLife #MySoCalledSudoLifeInterrupted #selfhosted #ActivityPub
Lots of talk about Ghost today, and rightly so, but don’t forget that a little open source framework @fedify made the ActivityPub plugin possible.
Support open source!
I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the #ActivityPub ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:
Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.
Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).
Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.
These additions should make #BotKit more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.