Week in Fediverse 2026-03-20
Servers
- Akkoma v2026.03
- Bonfire v1.0.2
- PeerTube v8.1.3
- Mitra v4.20.0
- NodeBB v4.10.0
- GoToSocial v0.21.2
- Funkwhale v2.0.0
- Ktistec v3.3.4
- ActivityPub for WordPress v8.0.2
- PeerTube v8.1.3
- ties v0.2.0
- Wafrn v2026.03.02
- PieFed v1.6.13
- Some updates to ActivityBot
- tags.pub: Global hashtag server
Clients
- Fedilab v3.37.1
- tinmop v0.9.9.141421356237309504
- tooi v0.23.0
- Holos v1.0.0
- Voyager v2.44.0
- Aria v1.4.6
Tools and Plugins
- mastodon-bookmark-rss: A small app to let you connect your mastodon bookmarks to your RSS reader
- smol overlays: Chat overlay and emoji wall for Owncast streamers
For developers
- activitypub-federation-rust v0.5.11
Protocol
- FEP-3ab2: ActivityPub Event Streaming API
- FEP-34ec: Notification Collection Endpoint
- FEP-db70: RemoveAll Collection Activity
- FEP-c07e: add product type to object
- FEP-c195: JSONPath Filtering for ActivityPub Collection Retrieval
- FEP-f011: Full-Text Search Query Syntax for ActivityPub
- FEP-a1d1: ActivityPub Patch
- FEP-c81b: Agent Social Attribution for ActivityPub
Articles
- Openness, transparency and reach: three reasons why public institutions should embrace the Fediverse
- The Purpose of Protocols
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019ce933-238d-11fb-304d-c3557c940c30
#Holos 1.0.0 is available! With this release, Holos moves from release candidate to production. This version adds a reverse timeline option to display posts oldest-first.
A lot of improvements have also been made to the relay, especially around Bloom filter performance, that are not always reflected in app changelogs.
Available on #FDroid custom repo:
https://fdroid.fedilab.app
Direct download: https://framadrive.org/s/SwXt6GbBC97pZJ4
Release notes: https://codeberg.org/tom79/Holos-App/releases/tag/1.0.0
#Fedilab 3.37.1 has been published. This release fixes bad behavior with reverse (aka normal) timelines. Also, if you filter links, the app will also check those embedded in href tags. Reported bugs have also been fixed.
More: https://codeberg.org/tom79/Fedilab/releases/tag/3.37.1
happy souls "i've got boss weapons" voice: We've got #GoToSocial BUGFIX RELEAAAASE
https://codeberg.org/superseriousbusiness/gotosocial/releases/tag/v0.21.2
Bugfixes and little chores! Check the commits at the link for specifics.
Note that we bumped the Go version number to v1.25 for this release. Normally we wouldn't do this in a bugfix release, but a dependency update (including a bugfix) depended on it, so here we are. Practically speaking you probably won't notice a difference, but it's worth mentioning.
If you're updating to this version from v0.21.x, it's a very easy update with no db migrations.
If you're updating to this version from a version before v0.21.0, please follow the update instructions from v0.21.0, but replace 0.21.0 with 0.21.2 throughout. Be aware that the update to 0.21.x contains some database migrations. Please do read the notes carefully!
Introducing tags.pub
tags.pub is a new service under development by the Social Web Foundation. It is a global hashtag server -- it lets you follow a hashtag across the Fediverse. There's lots of information on the tags.pub home page, and I (Evan) did a talk about tags.pub at FOSDEM 2026. This blog post answers some basics about tags.pub.
To follow a hashtag globally, search for a user with that name at tags.pub, like @example for the #example hashtag. Follow that account, and it will share all the […]
Some updates to ActivityBot
https://shkspr.mobi/blog/2026/03/some-updates-to-activitybot/I couple of years ago, I developed ActivityBot - the simplest way to build Mastodon Bots. It is a single PHP file which can run an entire ActivityPub server and it is less than 80KB.
It works! You can follow @openbenches@bot.openbenches.org to see the latest entries on OpenBenches.org, and @colours@colours.bots.edent.tel for a slice of colour in your day, and @solar@solar.bots.edent.tel to see what my solar panels are up to.
This is so easy to use. Copy the PHP file (and a .env and .htaccess) to literally any web host running PHP 8.5 and you have a fully-fledged bot which can post to Mastodon.
Grab the code and start today!
Features
Over the years I've added a few more features to it, so I thought I'd run through what they are. Note, this is all hand-written. No sycophantic plagiarism machines were involved in this code or blog post. I just really like emoji, OK⁉️
🔍 Be discovered on the Fediverse
This is the big one, you can find @example@example.viii.fi on your favourite Fediverse client. This is thanks to its WebFinger support.
👉 Be followed by other accounts
No point being discovered if you can't be followed. This accepts follow requests and sends back a signed accept.
🚫 Be unfollowed by accounts
Sometimes people want to unfollow. Too bad, so sad. Again, this will accept the undo request and delete the unfollowing user's information.
📩 Send messages to the Fediverse
If a bot can be followed, but never posts, does it make a sound? This sends a post to all of your followers' (shared) inboxes. Includes some HTML formatting.
💌 Send direct messages to users
Not every message is for the wider public. If you want a bot which sends you a private message, this'll set the visibility correctly.
📷 Attach images & alt text to a message 🆕🆕
A picture is worth a thousand words. But those pictures are meaningless without alt text. Attach as many images as you like. Note, most Mastodon services only accept a maximum of four.
🍿 Video Upload 🆕🆕
No transcoding or anything fancy. Upload a video and it'll be sent to your followers.
🔊 Audio Upload 🆕🆕
Same as video. Raw audio posted to your followers' feeds.
🕸️ Autolink URls, hashtags, and @ mentions
Including URls, tags, and mentions are mostly autolinked correctly. There's a lot of fuzziness in how it works.
🧵 Threads
You can reply to specific messages in order to create a thread.
👈 Follow, Unfollow, Block, and Unblock other accounts
It might be useful for you to remove followers or follow specific accounts.
🗑️ Delete posted messages and their attachments 🆕🆕
We all make mistakes. This will delete your post along with any attachments and send that delete message to everyone. Note, because of the federated nature of the Fediverse, you cannot guarantee that a remote server will delete anything.
✏️ Edit Posts 🆕🆕
If you don't want to delete and re-post, you can edit your existing posts.
🦋 Bridge to BlueSky with your domain name via Bridgy Fed
Not everyone is on the Fediverse. If you want to bridge to BlueSky, you can use the Bridgy Fed service.
🚚 Move followers from an old account and to a new account 🆕🆕
Perhaps you started as @electric@sex.pants but now you want to become @chaste@nunslife.biz - no worries! You can tell followers you've moved and what your new name is.
Similarly, if ActivityBot is no longer right for you, it's simple to tell your existing follower to move to your new account.
🗨️ Allow quote posts 🆕🆕
Rather than just reposting your message, this sets the quote policy to allow people to share your message and attach some commentary of your own.
👀 Show followers
Your follower count isn't just a number, it is a living list of who chooses to follow you.
⚠️ Content Warnings 🆕🆕
Perhaps you want to hide a bit of what you're saying. Add a content warning to hide part of your message.
🔏 Verify cryptographic signatures
HTTP Message Signatures is hard. I think I've mostly got it sorted.
🪵 Log sent messages and errors
This is primarily a learning aide, so have a rummage through the logs and see what's going on.
🚮 Clear logs when there are too many
ActivityPub is a chatty protocol. Your server can easily fill up with hundreds of thousands of messages from others. This regularly prunes down to something more manageable.
#️⃣ Hashed passwords for posting 🆕🆕
Bit of a guilty moment here. I was originally storing the password in plaintext. Naughty! Passwords are now salted and hashed.
💻 Basic website for showing posts
A nice-enough looking front end if people want to view the posts directly on your domain.
Some Deficiencies
Not every piece of software is perfect. ActivityBot is less perfect than most things. Here are some of the things it can't do and, perhaps, will never do. If you'd like to help tackle any of these, fork the code from my git repo!
⏳ Retry Failed Messages
A proper Mastodon server will keep trying to send messages to unresponsive hosts. ActivityBot is one-and-done. If a remote server didn't respond in time, or was offline, or something else went wrong - it may not get the message.
🔄 Reposts / Announce / Quote
You cannot boost other posts, or even your own. Nor can you send quote posts.
🤖 Act On Instructions
This is a basic bot. It contains no logic. If you send it a message asking it to take action, it will not. You will need to build something else to make it truly interactive.
📥 Receive Messages
In fact, other than the follow / unfollow stuff, the bot can't receive any messages from the Fediverse. It doesn't know when a post has been replied to, liked, or reposted.
😎 Set Post Visibility
Your posts are either public or a DM. There's no support for things like quiet followers.
📊 Create Polls
Everyone loves to vote on meaningless polls - but this is quite a hard problem for ActivityBot. It would need to keep track of votes, prevent double voting, and probably some other difficult stuff.
🗨️ Change Quote Post Visibility
As quote posts are still quite new to Mastodon, I'm not sure how best to implement this.
🔗 Proper HTML / Markdown Support
Autolinking names, hashtags, and links just about works - but not very reliably. In theory the bot could parse Markdown and create richly formatted HTML from it. But that may require an external library which would bloat the size. Perhaps posting raw HTML could work?
🖼️ Focus Points for Images
Perhaps of less use now, but still of interest to people?
❓ Other Stuff
I don't know what I don't know. Maybe some stuff is total broken? Maybe it is wildly out of spec? If you spot something dodgy, please let me know or raise a Pull Request.
#ActivityBot #ActivityPub #mastodon #php