Week in Fediverse 2025-10-03
Servers
- flohmarkt v0.12.1
- Gush! v0.0.23
- NodeBB v4.6.0
- ActivityPub for WordPress v7.5.0
- Ktistec v2.4.15
- Hollo v0.6.12
- tootik v0.19.6
- NeoDB v0.12.3
- Vernissage Server v1.23.0
- PieFed v1.2.3
- September 2025 (Bandwagon)
- ONI news for September (Oni)
- Bonfire Social 1.0rc3
- ActivityBot: A Simple ActivityPub Bot Server in a Single PHP File
Clients
- Fedilab v3.35.1
- Pachli v3.0.0
For developers
Articles
- Getting started with Mastodon's Quote Posts - technical implementation details for servers
- Fediverse Report – #136
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019987c8-484d-f913-d511-5e8329f9741f
Nola erantzun WordPressetik Mastodoneko mezu bati
Tut honi erantzunez: Instalatu ActivityPub plugina. Horrek ActivityPub protokoloa erantsiko dio zure blogari eta, praktikan, fedibertsoko beste instantzia bat bilakatuko du, Mastodonekin zein fedibertsoko beste edozein sarerekin zuzenean komunikatzeko ahalmena emanez. Egin oinarrizko konfigurazioa: aukeratu zure blogak fedibertsoan erabiltzaile bakar bat edo bat baino gehiago izan behar duen, profil orriak editatu, erabaki zer bidalketa mota federatuko diren eta zeintzuk ez... Zalantzarik […]https://teknopata.eus/2025/10/nola-erantzun-wordpress-mastodon-activitypub/

... subject for a FediForum session. We are non-partisan with respect to protocols, and want the entire open social web to succeed. And as it is an unconference, the discussion can branch out over several sessions if needed if an action plan were to emerge! #AtProto #ActivityPub
Volker Grassmuck (@vgrass https://vgrass.de/) asks:
"How can ActivityPub and AtProto join hands so both can fight the Romans rather than each other?"
Now here's a question! That makes a great subject for a FediForum session. We are non-partisan with respect to protocols, and want the entire open social web to succeed. And as it is an unconference, the discussion can branch out over several sessions if needed if an action plan were to emerge!
Volker Grassmuck (@vgrass@chaos.social https://vgrass.de/) asks: "How can ActivityPub and AtProto join hands so both can fight the Romans rather than each other?" Now here's a question! That makes a great .... #AtProto #ActivityPub
Volker Grassmuck (@vgrass@chaos.social https://vgrass.de/) asks: "How can ActivityPub and AtProto join hands so both can fight the Romans rather than each other?" Now here's a question! That makes a great .... #AtProto #ActivityPub
I'm trying to decide how much of "quote posts" I want to support in Ktistec. On one hand, it's not trivial functionality, and I really do question how much extra value someone's comments on someone else's post will add to the Fediverse. On the other hand, I dunno... assuming Mastodon limits abuse by enforcing quoting rules, Ktistec could probably just follow along and display quoted posts. Is there any value in just that?
#ktistec #activitypub #fediverse
Bluesky was never an alternative. I don't say it isn't better than Twitter; it is. However, the only genuine alternative, as of now, remains the Fediverse and Mastodon.
And most people won't admit it because they're too lazy to go through the "server browser" procedure, which is literally two clicks.
We put no effort into things and expect better/different results? That's silly.
Excellent article: https://azhdarchid.com/delusions-of-a-protocol/
#Fediverse #Mastodon #Bluesky #ATProto #ActivityPub #Tech
🆕 blog! “Getting started with Mastodon's Quote Posts - technical implementation details for servers”
Quoting posts on Mastodon is slightly complex. Because of the privacy conscious nature of the platform and its users, reposting isn't merely a case of sharing a URl.
A user writes a status. The user…
👀 Read more: https://shkspr.mobi/blog/2025/10/getting-started-with-mastodons-quote-posts-technical-implementation-details-for-servers/
⸻
#ActivityPub #fediverse #mastodon #MastodonAPI
Getting started with Mastodon's Quote Posts - technical implementation details for servers
Quoting posts on Mastodon is slightly complex. Because of the privacy conscious nature of the platform and its users, reposting isn't merely a case of sharing a URl.
A user writes a status. The user can choose to make their statuses quotable or not. What happens when a quoter quotes that post?
I've read through the specification and tried to simplify it. Quoting is a multi-step process:
I'm going to walk you through each stage as best as I understand them.
Opting In
An ActivityPub status message is JSON. In order to opt-in, it needs this additional field.
"interactionPolicy": { "canQuote": { "automaticApproval": "https://www.w3.org/ns/activitystreams#Public" }}That tells ActivityPub clients that anyone is allowed to quote this post. It is also possible to say that only specific users, or only followers, or no-one is allowed.
The QuoteRequest
Someone has hit the quote post button, typed their own message, and shared their wisdom. Their server sends the following message to the server which hosts the quoted status. This has been edited for brevity.
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "QuoteRequest": "https://w3id.org/fep/044f#QuoteRequest", } ], "type": "QuoteRequest", "id": "https://mastodon.test/users/Edent/quote_requests/1234-5678-9101", "actor": "https://mastodon.test/users/Edent", "object": "https://example.com/posts/987654321.json", "instrument": { "id": "https://mastodon.test/users/Edent/statuses/123456789", "url": "https://mastodon.test/@Edent/123456789", "attributedTo": "https://mastodon.test/users/Edent", }, "quote": "https://example.com/posts/987654321.json", "_misskey_quote": "https://example.com/posts/987654321.json", "quoteUri": "https://example.com/posts/987654321.json" }}All this says is "I would like permission to quote you."
The Stamp
The quoted server needs to approve this quote. First, it generates a "stamp".
This is a file which lives on the quoted server. It is proof that the quote is allowed. If it is deleted, the quote permission is revoked. The filename must be the same as the stamp's ID.
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "gts": "https://gotosocial.org/ns#", "QuoteAuthorization": { "@id": "https://w3id.org/fep/044f#QuoteAuthorization", "@type": "@id" }, "interactingObject": { "@id": "gts:interactingObject" }, "interactionTarget": { "@id": "gts:interactionTarget" } } ], "type": "QuoteAuthorization", "id": "https://example.com/quote-987654321.json", "attributedTo": "https://example.com/users/username", "interactionTarget": "https://example.com/posts/987654321.json" "interactingObject": "https://mastodon.test/users/Edent/statuses/123456789",}If the quoted status is viewed from a different server, that server will query the stamp to make sure the share is allowed.
The Accept
This is the message that the quoted server sends to the quoting server. It references the request and the stamp.
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "QuoteRequest": "https://w3id.org/fep/044f#QuoteRequest" } ], "type": "Accept", "to": "https://mastodon.test/users/Edent", "id": "https://example.com/posts/987654321.json", "actor": "https://example.com/account", "object": { "type": "QuoteRequest", "id": "https://mastodon.test/users/Edent/quote_requests/1234-5678-9101", "actor": "https://mastodon.test/users/Edent", "instrument": "https://mastodon.test/users/Edent/statuses/123456789" "object": "https://example.com/posts/987654321.json", }, "result": "https://example.com/quote-987654321.json"}The "result" must be the same as the stamp's URl.
And then?
You can follow and quote @colours@colours.bots.edent.tel on your favourite Fediverse platform.
I've written an ActivityPub server in a single file which is designed to teach you have the protocol works. Have a play with ActivityBot.
#ActivityPub #fediverse #mastodon #MastodonAPI
@cadusilva @marte Estive refletindo sobre o ECA Digital desde ontem. Pessoal usando linguajar mais "forte" ou qualquer conteúdo impróprio para mais jovens também deveria usar #CW.
Vislumbro que algo que pode vir a ser desenvolvido para facilitar a adequação do #ActivityPub à nova lei brasileira e que também está surgindo em outros países é que os clientes, p.ex. navegador, não exiba conteúdo marcado com CW. #W3C poderia recomendar essa solução.
What I loved to see in the #ActivityPub documentation is the inclusion of the list of Fediverse Enhancement Proposals #FEP's that are implemented. It will serve a stimulus for other #fediverse devs to adopt them too, and shape the grassroots standardization process. Posted the list to #SocialHub too..
https://socialhub.activitypub.rocks/t/bonfire-social-1-0rc3-is-released/8071
Also nudging to add #Bonfire as implementation in FEP docs..
https://codeberg.org/fediverse/fep/issues/194
And to review @helge https://codeberg.org/fediverse/fep/pulls/673