@fediforum@mastodon.social
@fediforum.org

FEP Exploration & Curation

/2025-10/session/3-e/

Topics:

Convener: Mayel (Bonfire) (@mayel@bonfire.cafe)

Participants who chose to record their names here:

Notes

  • Question: What is a FEP?
    • A FEP is a document that describes an enhancement to the fediverse that someone wants to proposal, typically they’re pretty technical documents, but they don’t have to be. You can find them on this website: https://helge.codeberg.page/fep/
  • See https://helge.codeberg.page/fep/ for full list of FEPs (note: there’s both final and draft ones that are relevant)
  • Look into which FEPs have “implementors” section, rough signal as to general support

Here’s a list of ones I’ve had a look at that seem quite interesting and/or already partially adopted and I’d like to have a closer look and/or input from people involved in drafting/implementing/using them:

  • FEP-044f (Quote Posts)
  • TBD (Interaction Policies)
  • TBD (Starter packs, published today by Mastodon)
  • FEP-1b12 and https://github.com/swicg/groups (Group federation)
  • FEP-f1d5, FEP-eb22, and/or FEP-0151 (NodeInfo)
  • FEP-2277 (ActivityPub core types)
  • FEP-4adb (Derefencing identifiers through webfinger)
  • FEP-521a (Representing actor’s public keys)
  • FEP-5feb (Search indexing consent for actors)
  • FEP-268d (Search consent signals for objects)
  • FEP-d8c2 (OAuth 2.0 profile for the ActivityPub API)
  • FEP-7628, FEP-73cd, and/or FEP-e965 (Move actor)
  • FEP-8967 (Generating link previews for attached links)
  • FEP-c0e0 (Emoji reactions)
  • FEP-9098 (Custom emojis)
  • FEP-f228 (Backfilling conversations)
  • FEP-7888 (Conversation context)
  • FEP-a974 (All Actor types should be followable)
  • FEP-1311 (Media attachments)
  • FEP-b2b8 (Long-form text)
  • FEP-76ea (Conversation threads)
  • FEP-7458 (Using the replies collection)
  • FEP-c16b (Formatting MFM functions)
  • FEP-eb48 (Hashtags)
  • FEP-67ff (FEDERATION.md)
  • FEP-2677 (Identifying the Application Actor)
  • FEP-d556 (Server-level Actor Discovery using WebFinger)
  • FEP-8a8e (A common approach to using the Event object type)
  • FEP-efda (Followable objects)
  • FEP-9967 (Polls)
  • FEP-fe34 (Origin-based security model)
  • FEP-0499 (Delivering to multiple inboxes with a multibox endpoints)
  • FEP-6fcd (Account export container format)
  • FEP-3264 (Federated work coordination)
  • FEP-c5a1 (Todos)

There’s some that haven’t been written yet:

  • Content Labelling (AP T&S)
  • Content Warnings and how they currently work (AP T&S)
  • Annotations and Moderation services (AP T&S)
  • Moderation Actor for other Actors (AP T&S)
  • interaction Policies (from Gotosocial)
    • These contend e.g. with reply controls from Friendica, which also don’t have a FEP and are incompatible with the GTS approach.

Concentric circles of coordination:

  1. write FEP to start conversation with other implementers
  2. iterate, add implementer notes to it
  3. IF YOU WANT to get more implementers or “upstream” it to future versions of the protocol, possibly hand (adapted from: https://github.com/swicg/potential-charters/blob/main/stage-process.md)
  • We need to challenge the way in which we do FEPs, and encourage the behaviour that we want to see and discourage the behavior we don’t want to see. Hostile review of FEPs discourages people from authoring FEPs.
  • Adding some additional metadata to FEPs may help encourage revisions, for instance including “obsoletes” and “updates” links between FEPs.
  • for people interested in migration between servers, this lays out some common ground between the various FEPs addressing the topic: https://codeberg.org/fediverse/fep/src/branch/main/fep/73cd/fep-73cd.md

OAuth Profile for ActivityPub:

We can probably learn a lot from how AT Protocol’s Lexicons and the related codegen tooling works, there is active work underway to extract out the Fedify vocabulary and codegen tooling into separate packages which will make that more reusable:

-> talk to Julian Lam about group FEPs.

Some software do duck-typing based on properties and kinda ignore the type property