Before creating and publishing FEDERATION.md for #ktistec I wanted to understand what existing practice looked like across the Fediverse.
FEP-67ff describes the requirements of the FEDERATION.md file in loose terms and provides a non-normative template. I scraped the URLs of FEDERATION.md files from FEP-67ff itself and confirmed I could fetch them. The FEP listed 30 accessible projects (31 total, but one project—FIRM—does not appear to exist).
If a file had a section with the heading "Supported FEPs" per the non-normative template, I only looked there for supported FEPs. Otherwise I scanned the entire document.
Implemented FEPs, ranked by the number of implementations that attest support, are:
FEP Name # ---- --------------------------------------------------------- -- 67ff FEDERATION.md 18 f1d5 NodeInfo in Fediverse Software 16 8b32 Object Integrity Proofs 7 044f Consent-respecting quote posts 7 2677 Identifying the Application Actor 7 e232 Object Links 6 1b12 Group federation 6 3b86 Activity Intents 6 521a Representing actor's public keys 5 2c59 Discovery of a Webfinger address from an ActivityPub actor 5 7888 Demystifying the context property 5 5feb Search indexing consent for actors 5 4adb Dereferencing identifiers with webfinger 4 d556 Server-Level Actor Discovery Using WebFinger 4 fb2a Actor metadata 4 ef61 Portable Objects 4 8fcf Followers collection synchronization across servers 4 844e Capability discovery 4 7628 Move actor 3 61cf The OpenWebAuth Protocol 3 c390 Identity Proofs 3 400e Publicly-appendable ActivityPub collections 3 c0e0 Emoji reactions 3 0151 NodeInfo in Fediverse Software (2025 edition) 3 fffd Proxy Objects 2 f228 Backfilling conversations 2 fe34 Origin-based security model 2 eb48 Hashtags 2 171b Conversation Containers 2 a5c5 Web Syndication Methods 2
There are obvious flaws in the methodology. Or maybe in the data. Only 18 out of the 30 projects I could access had a FEDERATION.md that attested FEDERATION.md support. Only 19 mentioned "FEDERATION.md". Only 21 mentioned "67ff". The remaining projects clearly did support FEP-67ff—the file itself was evidence. (FEDERATION.md is not meant to be machine readable—there's an issue about that).
It was more difficult to rank implemented federation protocols. I extracted keywords from documents with a "Supported federation protocols and standards" section and created a dictionary of terms. If a file had a section with the heading "Supported federation protocols and standards", I only looked there. Otherwise I scanned the entire document.
Feature # ---------------- -- activitypub 26 webfinger 24 http_signatures 21 nodeinfo 19 json_ld 2 ld_signatures 2 ostatus 2 authorized_fetch 1 atproto 1
If time allows, I'm going to try to rank these documents by "utility", though I haven't yet determined the exact metric. These documents clearly provide valuable information, but their lack of standardization makes them harder to analyze systematically.