taquiones.net is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
I may have written a JSON-LD schema for JSON Resume.
It is defined in terms of ActivityPub.
For example:
'Resume' is a sub-type of an ActivityPub 'Object'. There are some new fields defined. Etc.
...
Now the question is — where do I put it?
Do I create a pull-request to the JSON Resume resume-schema repo?
Do I create a FEP?
Do I put it somewhere else?
#ActivityPub #ActivityStreams #FediDev #ProToGo #JSONLD #JSONresume
Loops Playlists will soon federate!
They will likely only be compatible with other Loops servers as we're using a new type of OrderedCollection.
My personal desire would be to create a format from scratch (because you are in control, you get something bespoke to your needs, and it is personally satisfying), but —
I think there is probably an advantage to using something (such as JSON resume) that already has wide adoption.
I guess that makes me inclined towards the latter.
...
So, if I go that way, I would have to decide: plain JSON or JSON-LD.
#ActivityPub #ActivityStreams #FediDev #ProToGo #JSONLD #JSONresume
RE: https://mastodon.social/@reiver/116597879302607072
More on a resume / CV on the Fediverse on Social Web.
Another option could be to use something like "JSON resume":
https://github.com/jsonresume/resume-schema/blob/master/job-schema.json
It seems to be popular.
It isn't JSON-LD. Although I think it would be straightforward to translate it to JSON-LD, if that was desired.
#ActivityPub #ActivityStreams #FediDev #ProToGo #JSONLD #JSONresume
On Tags (including Hash-Tags) in ActivityPub.
2/
A new version of ActivityPub could extend the type of "tag" from:
Object | Link
to:
Object | Link | xsd:string
And that would make the following valid ActivityPub:
"tag": ["apple", "banana", "cherry"]
Of course, it would have to be specified how to interpret this. (Ex: as "type":"Hashtag", or whatever.)
#ActivityPub #ActivityStreams #FediDev #HashTag #HashTags #Tag #Tags
On Tags (including Hash-Tags) in ActivityPub.
1/
I think new developers coming to ActivityPub want to write something like:
"tag": ["apple", "banana", "cherry"]
It is unfortunate that that isn't valid ActivityPub. But, that it must instead be:
"tag": [
{
"type": "Hashtag",
"name": "#apple"
},
{
"type": "Hashtag",
"name": "#banana"
},
{
"type": "Hashtag",
"name": "#cherry"
}
]
...
#ActivityPub #ActivityStreams #FediDev #HashTag #HashTags #Tag #Tags
RE: https://mastodon.social/@reiver/116597841178183282
There is also the other question of — would the resume / CV be JSON-LD.
On one hand, if it was in JSON-LD, it would make it machine-legible similar to ActivityPub.
On the other hand, I don't think anyone is going to write JSON-LD (especially HTML embedded in a JSON string value) by hand. But, I do think some people will want to write their resume by hand.
It feels like user-experience is fighting with JSON-LD based machine-legibility.
How could you represent a resume / CV on the Fediverse and Social Web? Where would you put it? Etc?
I think it is tempting to put the whole resume in the Actor document.
But, it is probably better for the Actor document to point (rather than include) it. And, have the resume / CV live somewhere else.
It should probably be done in a way that let's people have multiple resumes / CV. For example, for different roles / career tracks, etc.
RE: https://mediaformat.org/2026/05/posting-from-c2s/
Hey look, first post from a custom client using ActivityPub API
For the #ActivityPubAPI, we need a profile of OAuth to use for accessing the actor's data. There's a suggested flow here:
There's an example client here:
https://swicg.github.io/activitypub-api/examples/oauth/index.html
It tries discovery via RFC 8414 or getting the endpoints straight from the actor.
It then provisions a client ID using CIMD, FEP d8c2, or DCR (in that order).
It then tries to do an authorization code flow.
I'm interested in seeing it tested with more ActivityPub API servers.
Remote Inbox Architecture
2/
The Remote Inbox server deals with incoming activities, objects, etc, from other users..
The front-end can get the inbox (and other feeds') data from the Remote Inbox server.
(You'd probably want to store cached data from the Fediverse elsewhere from these two servers, as I've said before. But, that is a separate thread.)
Remote Inbox Architecture
1/
This, the Remote Inbox Architecture, is an architecture for a Fediverse back-end server that I think could be useful.
Here is how it works — there are (at least) 2 servers involved: (1) the main back-end server, and (2) a remote inbox server.
The actor file on main back-end server "points" the inbox to the remote server.
It separates the user's content from the front-end related functionality
...
On moving an actor's content.
4/
Or, instead of using the ActivityPub 'Update' activity —
Couldn't we use the ActivityPub 'Move' activity.
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-move
With the "origin" and "target" fields.
Where "origin" contains the old ID URL, and "target" contains the new ID URL.
.
On moving an actor's content.
3/
There a many different conventions we could come up with to allow an ActvityPub 'Update' activity to be used to change an object's "id" field.
We (the Fediverse developer community) just need to pick one that everyone is willing to implement.
For example, perhaps the "origin", "result", or "target" field should be used:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-origin
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-result
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-target
Or —
...
On moving an actor's content.
2/
Could an ActivityPub 'Update' activity be used to move objects from one server to another server?
Could an 'Update' activity be used to change an object's "id" field?
After all, the "id" is used to identity what is being changed. It is the targeting mechanism.
How can you provide the old "id" to target the (old) object you want to change the "id" of, while also providing a new "id"?
https://www.w3.org/TR/activitypub/#update-activity-inbox
...
On moving an actor's content.
1/
One of the things that comes up on the Fediverse from time to time — is the ability for people to move their accounts.
For example, someone started off at:
@joeblow@example.com
But, now wants to "move" to:
@misterx@host.example
There is a mechanism to do that.
That mechanism moves their followers, their followees, BUT —
It does NOT move their content over!
That is a problem. Could we address this‽
...
I've been working on improving Loops federation in preparation to reuse it and it's powerful builder/handler/validation pattern for Pixelfed!
This will solve many federation issues in Pixelfed, like missing comment threading, mentions, blocks and unblocks and much more.
Then I will abstract it into a reusable Laravel package, so any laravel project can easily add federation support in minutes
I also submitted a NLnet grant application for this 🤞
ActivityPub being treated as JSON is a good thing.
5/
JSON-LD has similar complexity to RDF. They are actually related formats.
ActivityPub uses JSON-LD, and thus has the potential for the same type of developer user-experience problems as RSS 1.0.
But I think ActivityPub is its own "RSS 2.0".
Why‽ Because people can and do treat ActivityPub as JSON (rather than JSON-LD).
That is a strength. It makes ActivityPub much simpler and easier to understand than JSON-LD.
ActivityPub being treated as JSON is a good thing.
4/
RSS 2.0 won the RSS war.
I think the reason RSS 2.0 beat RSS 1.0 is because the RDF-based syntax of RSS 1.0 made it complex. It made it too complex.
While both RSS 1.0 and RSS 2.0 were XML-based, RSS 2.0 wasn't RDF-based. RSS 2.0's syntax was much simpler and easier to understand.
I think that was a big reason why RSS 2.0 won — it had a better developer user-experience.
...
ActivityPub being treated as JSON is a good thing.
3/
It would be reasonable for anyone to assume that RSS 2.0 is a newer version of RSS 1.0. And there were many who tried to promote that view.
But, really they were completely different formats.
The "RSS" in 1.0 and 2.0 didn't even stand for the same thing.
1.0 RSS = RDF Site Summary
2.0 RSS = Really Simple Syndication
...
ActivityPub being treated as JSON is a good thing.
2/
There are different versions of RSS.
Most people who know of RSS (if they even know it at all) know of RSS 2.0. But, it wasn't the only version of RSS.
(RSS isn't even the first technology of its kind.)
When the online developer community became aware of RSS, there was a fight between two version of RSS:
RSS 1.0 versus RSS 2.0
...
ActivityPub being treated as JSON is a good thing.
1/
Some of us are old enough to remember RSS and blogs.
Some of us are old enough to remember the absurd levels of hype that blogs and RSS attracted — similar to the modern AI hype and recent crypto hype. During that era, it felt like everyone any their pet cat wanted a blog with an RSS feed. During that era, there was a get-rich-quick fever around blogs and RSS.
Web-Browsers even added built-in support for RSS.
I think ActivityPub Partial Updates won't work well with attachments or tags.
Not unless there is a way to reliably just target the item in the attachments or tags array that you want to modify. AFAIK, there isn't.
You have to download the old version of the whole attachments or tags array first, update it locally, and then upload the whole (updated) thing. This creates a race-condition.
See also: https://mastodon.social/@reiver/116446675376417979
Hear me out, if we can integrate these 4, in a seamless frictionless integrated experience for both, companies and users, we could have a nice alternative to #LinkedIn that is actually not crap.
Any interest?
Week in Fediverse 2026-05-15
Servers
- PieFed v1.6.23
- Hollo v0.8.3
- Ktistec v3.3.8
- Wafrn v2026.05.01
- snac v2.92
- Mitra v5.3.0
- Iceshrimp v2026.4.2
- Hollo v0.8.4
- Vernissage v1.37.0
- Bonfire v1.0.3
- Hometown v1.2.1
- tootik v0.22.1
- NeoDB v0.14.2
- NodeBB v4.11.3
- PieFed v1.6.23
- Wanderer v0.19.0
- Aktor: A headless, Mastodon-compatible ActivityPub server
Clients
- FediLab v3.40.0
- tooi v0.25.0
- Holos v1.5.6
- Phanpy changelog
- lemmy-tray: Read lemmy posts in system tray
Tools and Plugins
- FediFetcher v7.1.18
- slurp v1.1.1
For developers
Articles
- There Are a Million Fediverses. Some of Them Are Louder than Others
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019de52a-a351-7ee2-a48b-7306090edfe6
For ActivityPub developers: in a Signature header, what is the key ID?
| An actor ID: | 3 |
| A public key object ID: | 11 |
| Something else (please specify): | 1 |
#Holos is a new social network working with #ActivityPub. This is not an app where you can connect your Mastodon, Pixelfed or PeerTube account.
There is no web version and no API because the ActivityPub server runs on the device itself. That's the whole challenge behind this project.
If there is more engagement, I plan to build a desktop version and even sync between different devices.
The official account for all announcements is @HolosSocial
In ActivityPub, these are all equivalent:
"type":"Banana"
"type":["Banana"]
"type":{"@id":"Banana"}
"type":[{"@id":"Banana"}]
"type":{"id":"Banana"}
"type":[{"id":"Banana"}]
"@type":"Banana"
"@type":["Banana"]
"@type":{"@id":"Banana"}
"@type":[{"@id":"Banana"}]
"@type":{"id":"Banana"}
"@type":[{"id":"Banana"}]
There are a LOT of Fediverse projects out there!
If you're a techy person interested in self-hosting Fediverse platforms, you might like to check out the "Delightful Fediverse" list which tries to feature every Fediverse project available:
🌱 https://codeberg.org/fediverse/delightful-fediverse-experience
(It's worth noting the meaning of the emoji next to project names, as the status of different projects varies.)
Updated: List of Helpful Mastodon Resources
- Add Connected Places
- Add delightful fediverse clients
- Add delightful fediverse deveopment
- Add delightful fediverse experience
- Remove orphan link
Handmade list of resources for the federated social network Mastodon covering, how to use, find an instance, find people, tools and more.
Changed default: for newly created instances, disable_inbox_collection is set to true (see snac(8) for more information). The reason is because it seems to be used for harrasing people.
Changed default: for newly created instances, disable_history is set to true (see snac(8) for more information). The reason is because archived history files don't reflect reality after posts are deleted or modified (they always have been an ugly kludge).
Changed default: in previous versions, posts with a scope of unlisted were shown in public pages and RSS feeds. Now, they are no longer shown. If you want to get back to previous behaviour, use a new toggle in the User Settings section (see snac(1) for more information).
New admin configuration option: if the purge_static value is set to true in server.json, each user's static directory is explored and those files there that are no longer attached to any post or referenced anywhere are deleted. See snac(8) for more information about those cases where you may not want to enable this option.
Allow serving files from subdirectories of the static/ subdirectory (contributed by la_ninpre).
Minor tweak to webfinger code to handle Hubzilla's peculiarities.
Fixed a search case where URLs to GotoSocial statuses were misidentified as accounts.
Accounts that follow you are now marked with a thumb-up emoji, because followers are adorable people.
Fixed some account export errors.
Fixed an incorrect hash in post links.
Show an account's location link in the people page, if they have one.
Mastodon API: Fixed hashtags loosing the link after editing a post, minor tweak in access token processing (contributed by trondd555).
Drop usage of PATH_MAX (contributed by sergiodj).
New Polish translation (contributed by kpm).
Updated German and Czech translations (contributed by zen and pmjv).
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
How much Fediverse software would fail if the "to" or "cc" of an activity contained:
https://WWW.W3.ORG/ns/activitystreams#Public
Rather than:
https://www.w3.org/ns/activitystreams#Public
I.e., an upper-case Internet domain.
WWW.W3.ORG versus www.w3.org
(What about WwW.w3.OrG?)
Janus & Justice: The Open WebRTC Revolution - Lorenzo Miniero - E88
Special thank you to @lminiero@fosstodon.org
🚀 #VOD tubefree.org/w/2Em9KMPuwuxhQ...
Never miss an episode!
🔎 #Follow @ozoned@tubefree.org
📡 #RSS tubefree.org/feeds/videos.xml?videoChannelId=5934
🎧 #Podcast tubefree.org/feeds/podcast/videos.xml?videoChannelId=5934 #FiresideFedi #FiresideChat #Podcast #VideoPodcast #Fediverse #Fedi #ActivityPub #DecentralizedSocial #OpenSocialWeb #Community #VodCast
ActivityPub specifications don't seem to provide a way to do Idempotent POSTs to your outbox.
That seems like a problem for C2S to me.
Networks are unreliable. You cannot tell the difference between an unreceived request vs an unreceived response. You'll get unwanted identical duplicate activities.
Although it isn't difficult to solve — a convention just needs to be picked.
For example, a new Idempotency field could be added to the JSON-LD payload.
Week in Fediverse 2026-05-08
Servers
- Vernissage v1.35.0
- Pleroma v2.10.2
- Funkwhale v2.0.2
- Betula v1.7.0
- Hollo v0.8.2
- Akkoma v2026.05
- Ktistec v3.3.7
- NodeBB v4.11.0
- Misskey v2026.5.1
- Ties v0.2.1
- PieFed v1.6.21
- Lemmy Development Update April 2026
Clients
- Nicolium v0.2.1
- Fedilab v3.39.0
- Pachli v3.6.1
- Mastodon for Android v2.12.0
- Coho v1.0
- PixelDroid v1.0.beta42
- Blorp v1.13.0
- Mitra Mini v0.4.0
- Holos v1.5.5
Tools and Plugins
For developers
Articles
- Join the fediverse! zine
- A Bridge to Somewhere: How to Link Your Mastodon, Bluesky, or Other Federated Accounts
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019de52a-a351-7ee2-a48b-7306090edfe6
Updated: List of Helpful Mastodon Resources
- Add RSS Tooter
- Add Masto Reader
Handmade list of resources for the federated social network Mastodon covering, how to use, find an instance, find people, tools and more.
I just added a new theme to @fediprofile , this time for those of your friends that want to showcase their portfolio of photos, so these are shown as a grid.
All the links would continue to be there just not as the main character.
There is a comparison that can be made between ActivityPub and Event-Sourcing.
3/
With ActivityPub, Activities are often applied to an object. That object gets assigned an ID in the form of a URL.
(And, by URL I mean URL, URI, IRI, etc.)
One doesn't have to read through all the Activities in an inbox, outbox, etc to get the final state of an object.
One can just get the JSON-LD document from the object's ID URL to get the final state.
There is a comparison that can be made between ActivityPub and Event-Sourcing.
2/
With Event-Sourcing, you can "project" the events to get another (often more peformant) view of the data in the events.
Without having to incur the cost of having to read all the events to figure out the final state.
...
There is a comparison that can be made between ActivityPub and Event-Sourcing.
1/
With Event-Sourcing, your source-of-truth is an append-only series of events.
Ex: USER_REGISTERED, EMAIL_ADDRESS_VERIFIED, PASSWORD_CHANGED, etc.
In ActivityPub, this is similar to the inbox, outbox, etc being an append-only series of Activity.
Ex: Create, Like, Undo, etc.
...
Just thinking out loud —
If we wanted to support resumable uploads in C2S API, then — we probably need some URL to upload the file chunks to.
…
When a user POST to their own outbox, the HTTP "201 Created" response will have a "Location" header that provides a URL.
Maybe that could be used as the upload URL.
Or, maybe the JSON-LD document at that URL might contain a URL under the "object" field that could be used as the upload URL.
Other options too
I can think of different ways to support resumable uploads with ActivityPub, but — just to see what others are doing —
PeerTube seems to have resumable uploads already.
PeerTube seems to use this protocol for it:
https://github.com/kukhariev/node-uploadx/blob/master/proto.md
I like that it uses Content-Range in the protocol. I would have done the similar.
It seems as if the uploadMedia ActivityPub extension does not provide a way to resume an upload that didn't previously compete.
https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload
If, for example, you are working with large files (such as video files) this would matter.
Because if you uploaded 1GB, and the upload stopped, you would want to resume at where it stopped, and not have to upload from the beginning again.
This would be important for ActivityPub C2S adoption.
Hooray #ActivityPub movies! 🎉 🎥🍿
https://movies.pub/movie/Q107105860
UPDATE: I'm at the #wmhack2026 hackathon this weekend, working on mapping movies from Wikidata to ActivityPub objects. It's not for end users. If you don't like JSON, these URLs won't be for you.
I'll try to make that clear from now on.
It's nice for me to share my progress. If you don't like it or you don't care, please be as respectful to me as you would be to other people on the Fediverse sharing things they made.
In the video in the post I just boosted, @anildash says #Substack is now boiling the frog in a slow move from email towards lock-in. And of course they work with Nazis etc.
What we need is an effort between newsletter publishers like #Ghost #WordPress etc and reader apps like @wallabag to build an ecosystem like podcasting. To make it smooth while remaining totally open. I'd argue for using #ActivityPub in addition to RSS to support boosts. Then we need decentralized money.
Which of the top 4 Fediverse server projects will be the first to implement the ActivityPub API?
#EvanPoll #poll #ActivityPub #ActivityPubAPI
| Mastodon: | 15 |
| Pixelfed: | 4 |
| Lemmy: | 1 |
| PeerTube: | 3 |
Two #ActivityPub fixes I submitted to #Misskey are in the latest release. I am so amped to see this happen; I cannot emphasize enough how important it is for established #Fediverse platforms to support the ActivityPub spec correctly. I love seeing this happen. Thank you Misskey for making the Fediverse a slightly easier place to write software!
https://github.com/misskey-dev/misskey/releases/tag/2026.5.0
Week in Fediverse 2026-05-01
Servers
- Hollo v0.8.0
- ActivityPub for WordPress v8.2.0
- NodeBB v4.11.0
- PieFed v1.6.20
- TinyAP v0.1.8
Clients
- Pachli v3.6.0
- tooi v0.24.0
- Tusker v2026.1
- Nicolium v0.2.0
- Jerboa v0.0.87
- PeerTube Mobile v2.1.2
- Mitra Mini v0.3.0
- Holos v1.5.2
For developers
Articles
- The Seven Deadly Fediverse UX Sins: A Redemption Report Card
- The Architecture of Autonomy and Freedom
- What would a LinkedIn alternative look like on the open web?
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019dc0ea-e585-7be3-8174-327c55ab28d5
Unfortunately I was only able to join for the third and last day of FediForum, but the energy was quite strong even then!
There were some interesting discussions with @ozoned@btfree.social @reiver@mastodon.social and others (@johannab@cosocial.ca, @j12t@j12t.social, etc) about fediverse payments and growing the open social web — this spanned two session slots, actually!
One thing that came out strongly was the need for content creators to get paid. This directly echoes @paige@masto.canadiancivil.com's talk from @fedimtl earlier this year. The other half was reflecting on the lack of appropriate value-adds for donators, such as private groups.
We have all of these things, but separately. Perhaps combining them into an easy-to-use service is the secret sauce that will open up the fediverse to content creators.[...]
There is work with the Interledger Foundation (@jeremiah@alpaca.gold) to make the financial side happen. There's ongoing work with CrowdBucks (@reiver@mastodon.social) to connect fediverse accounts with payment gateways. On the threadiverse side, each of us (NodeBB, Lemmy, Piefed) have support for private groups, but not federated private groups.
This might be an opportunity for the threadiverse implementors to work together (especially with @mayel@bonfire.cafe and the rest of the SWICG Groups Task Force (@groups)) to bring federate private groups out of the realm of theoretical possibility and into reality.
Character study of the GoToSocial sloth, a future new member, when I'll be drawing the group of mascots of the Fediverse.
Directly inspired by the GotoSocial logo by @Anna − CC-BY-SA 4.0 https://gotosocial.org/
#krita #ArtWithOpenSource #MastoArt
#GoToSocial #Fediverse #activitypub
Both Mastodon and Pixelfed seem to attach images as ActivityPub/ActivityStreams "type" = 'Document'.
I would have expected "type" = 'Image'.
'Document' isn't wrong. It is valid.
But, I would have expected the more specific type of 'Image'.
I think it would be better if instead of Fediverse software outputting the following for ActivityPub/ActivityStreams Notes, Articles, etc:
"attributedTo": "https://mastodon.social/users/reiver",
It would instead output something more like:
"attributedTo": {
"id":"https://mastodon.social/users/reiver",
"type":"Person",
"name":"Charles",
"preferredUsername": "reiver",
"icon": {...},
"image": {...},
}
This way the Activity* document contains everything needed to render it.
For those who have questions about #Holos. I've seen a lot written recently, and since the project is young, it's normal that things stay ambiguous or get misunderstood. This is a thread, with one post per remark most often read, and a direct answer.
Was the original intent of the ActivityPub / ActivityStreams "name" field to be a title?
(It seems as if some software is using it that way.)
What should the file-extension for ActivityPub / ActivityStreams documents be?
I.e., for application/activity+json data?
I've been using .activity
Ex: filename.activity
(The extension cannot be .json or .jsonld if you want to be able to detect it just based on the file-extension.)
What do you think?
RE: https://mastodon.social/@reiver/116471973046146144
If an ActivityPub Actor is something that has an "inbox" or an "outbox" (i.e., it could have just one or both) then —
Perhaps we should also be talking about "sources" and "sinks", too. Where —
An ActivityPub Source is an Actor with just an "outbox" (and no "inbox").
And, an ActivityPub Sink is an Actor with just an "inbox" (and no "outbox").
And, if this is the case, then every ActivityPub / ActivityStreams library should be on the look-out for "inbox" and "outbox" fields on everything.
Doesn't matter what it is. An "Event", an "Image", a "Link", a "Place", a "Video", even things in other namespaces.
What makes an ActivityPub Actor an Actor?
I think it is probably a bad idea to just restrict it to things with 'type': "Application", "Group", "Organization", "Person", and "Service". Restricting it to just those would mean you couldn't have new actor types (and sub-types) in the future.
So then, do we do it in a duck-typing way? And if "yes", how?
Maybe if something has an "inbox" OR and "outbox" it is an Actor. I.e., it could have just one of those.
Can an ActivityPub 'Place' also be an Actor?
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-place
With followers, an outbox, etc.
That could be useful for both real-life places, and fictional places in stories, and in video games.
#ActivityPub #ActivityStreams #FediDev #FediFiction #FediGames
#HolosSocial is a project that lets users run their own #ActivityPub server on a device (Android/iOS). Would a desktop version interest you? For purists, dynamic DNS could replace the relay entirely, which is simply not realistic on mobile.
Main account: @HolosSocial
Your opinion?
| Yes, with relay support: | 33 |
| Yes, purist mode (no relay): | 23 |
| No, mobile is enough: | 4 |
| No interest: | 23 |
Should an ActivityPub 'Place' be used to represent a fictional place?
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-place
Such as a fictional place in a story, or a video game?
#ActivityPub #ActivityStreams #FediDev #FediFiction #FediGames
Week in Fediverse 2026-04-24
Servers
- Hollo v0.7.11
- Lemmy v0.19.18
- Wafrn 2026.04.02
- Ibis v0.3.2
- Ktistec v3.3.6
- ActivityPub for WordPress v8.1.0
- Gush v0.0.36
- Iceshrimp.NET v2026.1-beta
- Mitra v5.2.0
- tootik v0.22.0
- NeoDB v0.14.0
- Vernissage Server v1.34.0
- PieFed v1.6.19
- ActivityPub Bots v1.1.1
Clients
- Jerboa v0.0.86
- Holos v1.4.0
Protocol
- FEP-35b7: Fediverse Servers, Instances, and Tenants
- FEP-ae49: Semantic Routing for ActivityPub
Articles
- Copyright and DMCA Best Practices for Fediverse Operators
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019d9ce7-bae8-7d4c-da66-27acb019a9e6
Would you play a Fediverse game?
Would you play a Fediverse game about Meta Humans?
#ActivityPub #ActivityStreams #FediDev #FediGames #Fediverse #Games #VideoGames #MetaHumans
Hey @panos@catodon.rocks, now that I'm tracking errors encountered, I've got a bit more visibility into things that normally would've just been caught and ignored.
Today I received a Delete(Object) from Catodon associated with a user from catodon.rocks.
Two things:
Its object referenced an item outside of catodon.rocks, and so it failed NodeBB's actor-object match check. Normally people can't delete other peoples' posts, so I think this might be a mistake?
The activity's audience matches the activity's attributedTo. While you're certainly allowed to put anything you want in there, threadiverse software uses it to point to a group actor. Wondering if this was intentional.
Thanks!
#Mastodon dot-social is confused with the #fediverse because one of its strengths is how well it manages tags.
you can tell @MastodonEngineering focused on optimizing hashtags when they didn't have the server power needed for search. you can easily find info, people & communities with little server power.
so Mastodon.social is the target of #DDoS #warfare because it is the site where you can see what’s possible with #ActivityPub & that is not controlled by #techbros billionaire parasites 🧵…
3/
If Agents aren't going away (and instead represent a new type of Star Trek like user-experience) then —
Which makes things less worse:
(a) having them use Fediverse technologies?,
(b) having them popularize an alternative platform to the Fediverse?
...
Given the choices, I suspect that we are probably better of if they use Fediverse technologies.
2/
AI is absolutely hyped to absurd levels!
(A lot like how the Web, Linux & Open-Source, Blogs & RSS, etc were at one time hyped to absurd levels.)
There are many things that I suspect will survive the eventual AI bubble pop and crash.
AI Agents will probably be one of the things that survives.
Here is the thing...
1/
If you haven't been paying attention the happenings in AI, you may have missed that the attention has shifted away from the generative models (such as LLMs, and diffusion models, etc) to — Agents.
At first, a single Agent. And now, groups of Agents working together.
Interestingly, ActivityPub has a place for Agents. In fact, 2 places:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-application
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-service
(Mastodon renders one of these as a "Bot" account.)
Week in Fediverse 2026-04-17
Servers
- Mastodon v4.5.9
- Stegodon v1.8.4
- NodeBB v4.10.3
- Lemmy Development Update March 2026
- Fedle: A daily word game played on the Fediverse
Clients
- Fedilab v3.38.0
- Blorp v1.12.4
Tools and Plugins
- Altbot v2.6
- bookwyrm.koplugin: A read-only BookWyrm plugin for KOReader
- threadcat: Converts a Mastodon thread to Markdown
For developers
- funfedidev schemas v0.1.1
- Mastodon.py v2.2.0
Protocol
- FEP-7b29: Federated Signup Requests
Articles
- FR#159 – Sovereign Tech Agency funds Mastodon
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019d78bb-737a-54cf-14a1-973c0a00393a
Thanks to @pfefferle I've learnt about tags.pub, a service that proposes to fill in the gap of missing fediverse-wide hashtag search; basically, following "@ [hashtag] @ tags . pub" you get posts from the global fediverse, tagged with that keyword.
This has created an issue though: being a WordPress user myself, I follow the "WordPress" hashtag. Well, after TagsPub integration into WordPress activitypub plugin, too many off topic sites came on my timeline. Because there's the questionable habit to place "WordPress as a hashtag, by creators who would like to get better discovered.
Can I say it rude? I've blocked at least a dozen accounts because they where photoblogs and I'm a totally blind user.
Does that mean they're spammers? NO. It means they use the wrong hashtag.
"WordPress" isn't the appropriate tag for indicating "this is my blog, come read it". The appropriate one is FediBlog.
Let me suggest Matthias Pfefferle and even @FediTips to explain it. This fact of "FediBlog" hashtag isn't too much publicized, and people ignore this.
PRs must not incorporate any material generated by or with the assistance of any so-called "generative AI" tool or LLM.
Quoted posts are now shown.
Added metadata to remote users in the people page (contributed by dandelions).
Fixed memory leak (contributed by dandelions).
Fixed user matching (contributed by rakoo).
Rendering visibility conditionally, with lesser reach if needed (contributed by byte).
Added a button next to a follow notification to follow back.
Fixed typo in man page (contributed by spky).
Updated Czech and German translations (contributed by pmjv and zen).
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
RE: https://colours.bots.edent.tel/posts/68d87379-8e35-18be-b901-2730376a090d.json
Ok, I need some #ActivityPub help, please.
The reply to this will have links to the QuoteRequest the bot received, the QuoteAuthorization which it saves, and the Accept message it returns.
Can anyone figure out why the Quote permissions aren't showing on external servers?
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.
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
This release has been inspired by the song Pictures on the Wall by #MichelleGurevich.
You, people, are GREAT. Thank you very much.
De la mano del muchache creador de #snac, y su inagotable optimismo con el amor y la vida, nos llega ahora una instancia #activitypub para saber si llega o no llega el meteorito de las narices.
Week in Fediverse 2025-01-31
Servers
- Manyfold v0.99.0
- Misskey v2025.1.0
- snac v2.70
- Hollo v0.4.5
- Gancio v1.23.0
- NeoDB v0.11.4.3
- forgejo-contrib/federation: The place to organize development around federation for Forgejo
Clients
- Elk v0.16.0
- Pachli v2.9.2
- Dhaaga v0.14.1
- Alexandrite v0.8.18
- Pixelix v3.3.0
- PeerTube Mobile v0.6.0
Tools and Plugins
Protocol
- FEP-2277: ActivityPub core types
Articles
- Improving Snac Performance With Nginx Proxy Cache
- Fediverse Report #101
-----
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/019499d8-2a50-b1df-6908-393384df7e2d
Added support for subscribing to LitePub (Pleroma-style) Fediverse Relays like e.g. https://fedi-relay.gyptazy.com to improve federation. See snac(8) (the Administrator Manual) for more information on how to use this feature.
Added support for following hashtags. This is only useful if your instance is subscribed to relays (see above).
Added support for a Mastodon-like /authorize_interaction webpoint entry, that allows following, liking and boosting from another account's Mastodon public web interface. To be able to use it, you must reconfigure your https proxy to redirect /authorize_interaction to snac (see snac(8)).
Some fixes to accept Event objects properly (like those coming from implementations like https://gancio.org/ or https://mobilizon.fr).
Added some caching for local Actor objects.
Hashtags that are not explicitly linked in a post's content are shown below it.
Fixed broken NetBSD build (missing dependency in Makefile.NetBSD).
The user profile can now include longitude and latitude data for your current location.
Mastodon API: implemented limit= on notification fetches (contributed by nowster), implemented faster min_id handling (contributed by nowster), obey the quiet public visibility set for posts, other timeline improvements (contributed by nowster).
Reduced RSA key size for new users from 4096 to 2048. This will be friendlier to smaller machines, and everybody else out there is using 2048.
If the SNAC_BASEDIR environment variable is defined and set to the base directory of your installation, you don't have to include the base directory in the command line.
Fixed a bug in the generation of the top page (contributed by an-im-dugud).
Added support for Markdown headers and underlining (contributed by an-im-dugud).
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song Nine Hundred Miles by #BarbaraDane.
Fixed regression in link verification code (contributed by nowster).
Added ipv6 support for the https frontend connection (contributed by hb9hnt).
New "Like by URL" operation (contributed by dheadshot).
Added support for a Mastodon-like /share link sharing URL, like the one provided by sites like https://mastodonshare.com/ and such. To be able to use it, you must reconfigure your https proxy to redirect /share to snac (see snac(8)).
New linux landlock (sandboxing) support for enhanced security (contributed by shtrophic). It's still a bit experimental, so you have to enable it explicitly by recompiling with the WITH_LINUX_SANDBOX directive (e.g. make CFLAGS=-DWITH_LINUX_SANDBOX).
Some search fixes regarding repeated matches.
The export_csv cmdline operation now exports the CSV files inside a user's export/ subdirectory instead of the current directory.
All CSV files to be imported must now be stored inside a user's import/ subdirectory instead of the current directory.
Mastodon API: more timeline paging tunings (contributed by nowster), post language selected in apps is properly set.
The command-line operation note new reads the LANG environment variable to set the post's language.
A new command-line operation, note_unlisted, allows posting "unlisted" or "quiet public" posts.
The maximum number of entries in users' RSS feeds and in outboxes can now be set via the max_public_entries variable in the server.json file.
Fixed broken support for Audio objects.
Made xmpp and mailto URLs clickable.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the painting Judith Slaying Holofernes by #ArtemisiaGentileschi.
Added a new user option to disable automatic follow confirmations (follow requests must be manually approved from the people page).
The search box also searches for accounts (via webfinger).
New command-line action import_list, to import a Mastodon list in CSV format (so that Mastodon Follow Packs can be directly used).
New command-line action import_block_list, to import a Mastodon list of accounts to be blocked in CSV format.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
The server can now act as a proxy for all image, audio or video media coming from other account's posts (both from the Web UI and the Mastodon API). This way, other servers will see media requests coming from the server IP, not the user's, improving privacy. This is controlled by setting the proxy_media boolean field to server.json to true.
The strict_public_timelines option introduced in the previous release now works correctly.
Fixed a crash when posting from the links browser.
Fixed some repeated images from Lemmy posts.
Fixed a crash when posting an image from the tooot mobile app.
Updated FreeBSD rc script: the server process is now managed by the daemon(8) utility (contributed by @stefano@bsd.cafe).
RSS feeds are now in 2.0 version instead of 0.91.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/donate
This release has been inspired by the song New Moon (Dark Phase) by #DuranDuran.
Migration from a Mastodon account to a snac one has been implemented. Please see snac(8) (the administrator manual) for more information.
Mastodon API: fixed timelines/public (it was showing less posts that it should).
Fixed over-zealous caching to the public timeline.
Some HTML tweaks and fixes to the web interface.
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the painting The Hands Resist Him by #BillStoneham.
Support for custom Emojis has been added; they are no longer hardcoded, but read from the emojis.json file at the server base directory. Also, they are no longer limited to string substitutions, but images as external URLs are also supported (see snac(8) for more information).
Fixed a bug that caused some notifications to be lost when coming from a user in the same instance.
Added an additional check for blocked instances (sometimes, posts from blocked sites that were ancestors of legit posts were 'leaking' into the timeline).
On OpenBSD, if the disable_email_notifications server flag is set to true, unveil() is not called for the execution of the /usr/sbin/sendmail binary and pledge() doesn't set the exec promise.
If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink
This release has been inspired by the album Eternal Embers by #Meltt.
Part 3 of "A Guide to Implementing ActivityPub in a Static Site (or Any Website)" is just out the oven!
In this blog post, I explain how to make your blog discoverable in the Fediverse as an account, and also address some of the annoying pitfalls I encountered.
Full article here: https://maho.dev/2024/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-3/
If you like it don't forget to follow the @blog !
#fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http