2021-05-01 Fediverse Interest Group Meeting

Per the calendar, this meeting will be at:

  • 2pm UTC
  • 10am EST
  • 7am PDT



  • 5min - 30s introductions/reintroductions

Candidate Agenda Items

Please reply below to propose an agenda item. Please consider doing some ahead-of-time work to articulate the item, and linking it in your proposal so others can come prepared to build consensus or raise objections that we can discuss in our limited time together.

Example Agenda Proposal

PROPOSAL: @bengo - 5min - Project update, demo, and call for testers on distbin project. (then include link to blog post about project update)

Read this for more on agendas.


Hi there, i cannot see an meeting in this calendar at 30.4.
This is for most of Europe MESZ = UTC+2 → 16:00, right?

1 Like

These things are supposed to show the time in your timezone and they do for me.


1 Like

@naturzukunft @grishka I had messed up on scheduling this (I’m learning), and had assumed it would just be 1 week after the last meeting, but I forgot we’re alternating with two different times.

I’ve updated the original post to reflect what I see on the cloud.w3c.social nextcloud, which is 3pm London Time on May 1.

Sorry for the confusion y’all.

It is tomorrow, May 1 –
we do it alternating FRI / SAT because some people can’t attend weekdays but others can’t attend at weekends …

The meeting tomorrow is in the calendar, can you confirm?

oh dang I finally almost made it to one of these - I think I can make it tomorrow

PROPOSAL: @datatitian - 10min - introduction to my ActivityPub projects: Guppe Groups (cross-platform shared interest groups), activitypub-express (reusable AP implementation library for NodeJS), Immers Space (federated 3D worlds)

1 Like

PROPOSAL [from last SocialCG]: @Sebastian et al. - 20min - Capability Negotiation

The Conformance Section, 2.1 often says “the entirety” when it comes to being
ActivityPub conformant” …

  • What is this theoretical entirety (which personally I strive for) and what does it mean in reality?
  • How can we discover what feature sets each server or client support?

related / seeAlso

/ @grishka @koehn @melody

Don’t know if I can join. But was wondering about “Fediverse Interest Group” or FIG :wink:

I like the term, but wonder where it is coming from, and if it should have a more ‘official’ place in community organization similar to “SocialCG”?


I can make it to talk a little about FediHealth.

See you this afternoon.


Still have the #OMN and #indymediaback project presentation hanging over from last meeting.

Working on a blog post http://hamishcampbell.com/2021/05/01/from-chaos-comes-order

Where do I find the URL of the webinar?


Good question @bengo
Proposing to meet at BBB w3.social and I open the room shortly before?


I’m having network outages today. It comes and goes. I’ll be there if the connection permits. :frowning:

No worries, also, we usually use audio only and the IRC and more infos can be found in the SocialCG - W3C Wiki

Meeting URL

Minutes draft

duration 1:20

@hamishcampbell @datatitian Paul Fuxjäger @grishka @tuttle @Sebastian

Hamish Campbell (OMN) @hamishcampbell

am working on these idea/project http://hamishcampbell.com/2021/05/01/from-chaos-comes-order/ would like to talk about this briefly today.
[Hamish walks us through the blog post]

This project treats activitypub more like peertube uses it - as a pipe.
It is about content curation and content management.
More content/topic based than Actor centric like mastodon.

Could do with some help to think this through and define some terms.
The actors are the values/filters of the pipe - to sive the flow.

We exchanged some questions about technical details and about the protocol it was mentioned that
An Object can be an Actor of e.g. type Service
And the concept of “relay Actors” was described (see also gup.pe below)

@tuttle showcased FediHealth with a walkthrough and demo
[shows repo]

“moderation of nodes is a good idea”
Some nodes are healthy, some nodes are not.
Make a list of the nodes whos’ federation policies you trust .
[people write instances in shared note]

This ended in a working demo. Some nodes do not support it and are mentioned in an error report,
and then visualised the federation policies of other nodes.
tuttle mentions networks of trusted nodes and the importance for schools and covid …

“Matrix wrote a post about distributed moderation in a federated context” Designing decentralized moderation | by Jay Graber | Medium

/me mentioned Cristina DeLisle
“so when you as an admin were peering with another instance you are showing your set of values, and if that other instance believes that they are sharing those values, that instance can peer with you”

[Let’s work on …]

@datatitian gives an overview of the ActivityPub Tools which he created:

Guppe Groups
It is an ActivityPub subset with
“Discovery”, 1 inbox/outbox,

It autocreates a Group Actor when people mention a new group,
people can follow it and it relays the posts (‘forwards’ them to the followers)

microservices like this can add nice functionality …

Modular implementation of the ActivityPub decentralized social networking protocol, written for NodeJS as ExpressJS [server] middleware. Includes a interchangable storage interface with a default MongoDB implemenation.


It is 3d, for VR devices but not limited to, default is Mozilla Hubs
ActivityPub runs in parallel, you can follow, see where your friends are, chat, share selfies etc.
We are a legal cooperative …

Also interesting: The reciprocal auth setup
In immers.space, you can take your account to each other world, bring your name, avatar and friends list with you

Any suggestions for above welcome …
Now we opened the session to talk about Capability Negotiation as described in the announcement.
The 2nd part of the log will be a wiki post so that everybody can add notes or proposals …

Capability Negotiation

See the Conformance Section of the specification

ActivityPub conformant Client
This designation applies to any implementation of the entirety of the client portion of the client to server protocol.

ActivityPub conformant Server
This designation applies to any implementation of the entirety of the server portion of the client to server protocol.

ActivityPub conformant Federated Server
This designation applies to any implementation of the entirety of the federation protocols.

That was intended, how about reality?

#HowItStarted : NodeInfo

#HowItIsGoing :

“… but what if there are different kinds of content?

For example, what if I add photo albums? How would I count these and photos within, or would I ignore them entirely?

The idea of “kind, count” pairs does indeed feel like the way to go.”


“And this is how we come to the need to have some sort of capability negotiation between servers.

Imagine people hardcoding checks for software names and versions. This can’t end well.”

Can we extend / replace NodeInfo by something better?

  1. we should all use the generator property of AS

  2. Let’s define the scope here, Capability Negotiation of

  • the technical feature sets each server or client support

  • the TOS or CoC of the other instance

  • the human values of another user

  • Combination of Activity type and Object/Actor type

The most simple approach would be if an instance of any software defines the basic capabilities or ActivityPub subset they support like a combination (Object|Actor): [Activity, Activity]
“Group”: [“Invite”, “Join”, “Leave”, …]
“Place”: [“Arrive”, “Leave”]

But it should be per Actor, for example

"wallPost": ["https://instance.com/users/1/friends"],
"wallPost": ["as:Public"]

Both features could be combined, e.g.

"partyCheckin": {
    "Arrive": ["as:Public"], 
    "Leave": ["https://instance.com/users/1/friends"]

Concrete examples were given, for example if you invite other people to a Group …
→ You would like to know if the receipents’ instance will support direct Accept / Reject and if not you can then fallback and e.g. add a link to the original content in a Note-Invite.
You could also hide the link in your own UI …

  1. When does it happen?
    manually / follow

  2. How do we define “special collections” ?

e.g. immers uses the streams property via the spec.
“We have a special type model for avatars because [hey ;)] 3D …

You can define your type in your namespace as protocol extensions, for example

smithereen Wall posts = Ordered Collection of Note
immers Avatars = Unordered Collection of Model
redaktor Maps = Unordered Collection of Maps

we could use schema.org


see also
The ActivityPub Conf Session pad:


A post was split to a new topic: What does ActivityStreams Conformance mean?