As a supplement to my brief history of the fediverse piece, here’s a few thoughts on the origins and limitations of ActivityPub. From the POV of a fediverse evangelist with no real clue about protocol implementation. BYO grain of salt.
The patchy standards compliance in the fediverse is a result of a patchy spec (AP 1.0). Produced under intense time pressure, and attempting to address the protocol needs of half a dozen non-compatible federated networks (IndieWeb, OStatus fediverse, Diaspora federation, Zot-verse, etc), as well as standardising AS 2.0 as the data format for the spec. Despite the heroic efforts of those involved in the drafting process, it should have ended up an XKCD-927, and it kind of did. Diaspora remains outside the AP tent, as do the social web apps using XMPP (Movim and Libervia) and Matrix (Cactus Comment, Circles), and a few others (eg Libertree).
Ideally, implementing vanilla AP would require no less and no more than the minimum requirements of any fediverse experience. So all FEPs would be nice-to-haves, or provide for specific use cases. But even as a non-implementer, I’m aware the existing AP spec is not even close to meeting this ideal. Which is why, in practice, writing a fediverse-compatible app involves reverse-engineering Mastodon, and maybe other well-known fediverse software, not following the AP spec to the letter.
Combine this with the Walled Garden attitudes of certain people who think there’s a social network called “Mastodon”, which exists to keep the unwashed masses outside the walls. For these people, spec compliance is an anti-feature, because it risks exposing them to the “basket of deplorables” they believe to be the only people using servers running Pleroma, or any other non-Mastodon server software (although certain projects, like Glitch and Hometown, are allowed to sit at the Mastodon round table).
This is why spec compliance is not yet a thing in fediverse dev. Mainly because it’s not practically possible yet, but also because there’s a lot of confusion about whether it’s even a good idea.
This is why I’m excited to hear that a pioneer like Evan P is leading the charge on a successor to AP 1.0. Whatever that might look like, and wherever the standards work might be done. Let’s make it trivial to connect all the things, while also making it easier for people to control who they connect with using the things. That way, it will become possible to be standards-compliant by following the spec, and people will have a strong motivation to do so.