Skip to main content


I think one of my personal takes on AP is:

  • People say json-ld is the extension mechanism for AP
  • People say AP is not really json-ld

So either People are wrong or AP is wrong (or both).

I don't think that the answer to the above question particularly matters. We should rather define a testable extension mechanism. A good place to start would be an explainer how Custom Emojis currently work. With TESTS!!!

in reply to GunChleoc

I think the talk about AP (Fediverse) Test Suites is part of the collective falling for red herrings that happens in the Fediverse.

You don't need anything fancy for this. Standard and well established mechanisms such as json-schema are enough. Not using json-schema for something like this would be reckless.

in reply to Helge

And some interoperability tests with other networks and possibly basing new extensions on prior work elsewhere
in reply to Pelle Wessman

You do not need interoperability tests, if you use a well defined standard. Interoperability tests are useful when the standards are bad or implementations are bad.

I have sites data.funfedi.dev and support tables dedicated to illustrate how bad the situation is.

As for other standards, one can look at caniuse.com on how it was done for HTML.

in reply to Helge

I meant with #IndieWeb, Bluesky and other non-ActivityPub initiatives

Eg the #IndieWeb have documented lots of findings in their wikis and have standards that been standardized in parallel with ActivityPub

One should not do like eg Mastodon did with the fediverse:creator meta tag

in reply to Pelle Wessman

That is a much harder problem to tackle than what I suggest.

ActivityPub (and some implementations) fail at basic things like "Is an Activity you receive valid if it contains the bto field?" Similar question with "does not contain the cc field". I'm not going to point at the implementations, but both are backed by my observations.

I want some clarity created here. Also note: Creating the json-schemas is probably the smallest step of the process. Investigating if current applications send conformant activities and can parse conformant ones is the second easy part (I already did the work for parse). The real work is getting people to commit to continue respecting the schemas (and possibly change their implementation to respect them).