FEP Process - Clarity on positioning: open and inclusive

In order to avoid misunderstandings on the nature and role of the FEP Process with regards to Fediverse ecosystem evolution, I think we need to further clarify the position of the FEP and how SocialHub relates to it.

For the 3-stage Standards Process proposal, I already mentioned to @stevebate and @evan who had concerns, that SocialHub is just a facilitator of the process, and in no way a gatekeeper. And also that, while there’s a default discussion thread at SocialHub for each FEP, authors may choose to collect feedback via any other channel and avoid forum participation entirely.

The FEP’s positioning is not clear enough. For example for the Content Licensing FEP by @TimBray I had to give clarification in the thread, and then finding direct references to my posts, give more clarification that I’m just facilitating the process, independently from the nature of any of the content of the FEP, which is primarily where the author wants to bring up a subject for consideration.

Especially that last reference is a good example of how social media dynamics can take a life of their own, and completely misrepresent the nature of the FEP, and the hard work of the volunteers that keep it going.

There are more FEP’s that are almost certain to raise controversy and heated discussions. Such as the PhotoDNA Attestations FEP, where I felt obliged to highlight the merely facilitating role of the FEP process.

Clarify positioning

Avoiding confusion on FEP’s role in the standards process is a requirement. What can we do to improve it further?

My thinking is that at minimum there should be a very concise summary. A TL;DR of the process that can be dropped as a prominent disclaimer at any place where quickly-skimming social media eyes :eyes: can jump to wrong conclusions:

Also @how, I think it is important that FEP topics are reassigned to the @system user, so they are clearly not in the name of the facilitator that may cause confusion and these people being targeted.

What other ideas do you have to bring clarity?

Is the Process complete?

Another aspect that deserves attention is asking whether the FEP Process is watertight. It is fine that the FEP is facilitating and strives to be as open and inclusive as possible. But what kind of submissions should it not be open to? What are the limits to that? And if a particular FEP proposal is highly controversial, what consensus needs to be sought in the broader community to finalise it? Can it even be finalised if there’s no satisfactory solution? Should it be possible to finalize in that occasion?

1 Like

I think it’s OK if proposal is mildly controversial. The line is crossed when people stop contributing because they don’t want their name to be associated with the FEP process.

Per FEP-a4ed, FINAL status doesn’t have any special meaning, besides indicating that proposal is not going to change. So the decision on finalization is made by authors, unless the procedure is changed to require some sort of consensus (I think this shouldn’t be done).


In general, I’m of the view is that the first step is clarifying what is a FEP.

Is a FEP more like a Python’s PEP and Java’s JEP, where the final result should be considered as Part of the Fediverse™? Perhaps even something that should become part of the standard that everyone will implement?

Or is it more like XMPP’s XEP, where extensions are generally extensions, and while some are more universally implemented others—including some of the final ones—are definitely not.

IMO, talking about things as “stages” to me lends itself heavily toward the former interpretation, where I think it sounds like what you are going for is closer to the latter?

Clarification on this would be helpful and reduce multiple potential sources of friction.

To some extent, whatever the choice, then it is just going to require repeated reinforcement. It’s never going to be possible to keep everyone from jumping to conclusions when they see something that scares them, and so a lot of it is just going to be patient trust building.


i think a FEP can be either – although it is more likely to be a XEP-like extension due to the difficulty in establishing any sort of broad consensus on what the “fediverse” even is (so step 0 would be defining the fediverse :p)


Yes, I feel the same. This is also the best way where the FEP does not assume authority. No gatekeeping, just showing a direction that leads to better outcomes for all, and attractive because others have done the hard work already. I also really like how the XEP is set up in general.

If things are controversial is not really the point. That is fine, I agree. It is more in general how people perceive the FEP process being associated with the controversy. This is important.

I don’t know if any of you have seen the negative sentiments being spread on W3C being pro corporate because of their expensive member fees and exclusively corporate membership. There’s something to say for that as well. But the SocialCG has never had such associations and always has been a true community group with members from the grassroots movement, until this very day. Yet the association may rub off negatively wrt people refusing to participate.

Same can happen for the FEP based on wrong association, and social media dynamics spreading unjustified sentiments broadly across the fedi. As FEP editor you will see yourself either obliged to correct, or take the negativity for granted. It is better to avoid getting there.

Is every FEP good to go? Can we come up with possible submission where we say “Sorry, but this is against the nature of what we are about”? If e.g. a FEP would allow targeting individuals for their opinions, or would describe integration of something that may well be a crypto scam? On what grounds do we accept or reject? And if we do that, what impact does that have on our independent position as a facilitator, without authority? If a highly controversial FEP becomes FINAL, isn’t the FEP then advertising the controversial nature of it… unless it is very clearly distancing from it?

FEP for me is not a standards process or part of it. It is a proposal process, so we have a central place to collect ideas and discuss them, and should strive to be as open as possible. If someone wants to write a FEP and introduce the Mooo activity and discuss how to best use OICD to do it, they should be welcome to do so. I might even then submit a counter proposal without OICD.

If you want FEP to be turned into a standards process, I will insist on:

  • Clearly stated requirements backed by tests
  • A centralized way to check implementation status

Most FEPs currently do not pass the criteria, so it wouldn’t be a very exciting process.

:100: I actually want to be very clear that FEP is minimally gate kept. Another example beside topics being controversial: People are allowed to write FEPs that have security implications, and they get added without the editors ensuring that we do not create new attack vectors.

If we would want FEP to be gate kept, I would suggest first adding a disclaimer that FEP doesn’t accept security relevant topics, as the FEP editors cannot ensure that the new FEPs don’t create issues.

:100: I think also the communication of what FEP is differs on who is talking about FEP.

From the front page

A Fediverse Enhancement Proposal (FEP) is a document that provides information to the Fediverse community.

I think is an example of what may be useful. It might be informative to explain how crypto scams could work on the Fediverse. If one wants to fight against them, one needs this information.

As for the other examples, we might add a sentence or two somewhere that editors may refuse submissions if they are contraproductive to the goal of promoting the well being of the Fedizens.


I strongly agree with the “fediverse” comment. The are many possible definitions of it so any use of the term has low information content and high risk of confusing discussions where people are talking about different things, both called the “Fediverse”. Unfortunately, it’s the “F” in “FEP” so the process inherits that ambiguity.

The role of FEPs is not clear to me. They can be anything (like jokes or an opinion statement), not just descriptions of proposed extensions to something related to the “Fediverse” (whatever that is). And that’s OK. But like with AP/AS2, that loose definition creates challenges.

The FEPs don’t feel analogous to a PEP, BEP, or JEP/JCP. Those are proposals to modify a relatively tangible thing: the Python or Java/JDK language or runtime or the BitTorrent protocol. (I don’t consider AP to be a protocol in the same sense as BitTorrent.)

An FEP feels more like an inferior form of an IETF Internet Draft (or the original RFCs). I say inferior because those documents at least have a high-level categorization to indicate if they are information vs “spec track”. In an FEP context, the latter would mean the FEP is intended to be part of the 3 phase process that @aschrijver has been promoting.

To some extent, the FEPs feel like a centralized group blog with editors that enforce MarkDown formatting and file naming. I’m still thinking about the tradeoffs of that approach versus publishing ideas on one’s personal blog (or other group blogs/aggregators associated with domain-specific topics like federated microblogging, federated event/meeting management, LD graph-based servers and client apps, etc.).

1 Like

Collected feedback

NOTE: This is a wiki post that anyone can edit.

Where FEP is unclear

  • The role of FEP’s is not clear enough (@hrefna, @stevebate, @aschrijver)
  • Unclear if FEP’s are a) part of standards, or b) extensions (@hrefna)
  • Does maintaining a centralized FEP directory bring enough value? (@stevebate)
    • In comparison to decentralized/federated/domain-specific blogging or aggregators.

What FEP should be

  • Minimally gate-kept (@helge, @aschrijver)
  • Able to deal with controversial submissions, to an extent (@silverpill, @helge, @aschrijver)
    • Line is crossed when people don’t want their name associated with FEP process (@silverpill)
    • FINAL status is the author’s decision, not up to consensus (@silverpill)
    • Editors may refuse FEP submissions, this should be documented (@helge)
    • Editors should not be seen as gatekeepers or supporters of FEP’s (@aschrijver)
  • FEP process gives no guarantees about security (@helge)
    • Security aspects are for the FEP author’s and implementers responsibility.
  • FEP as standards process MUST have: clear requirements, tests, impl status (@helge)
  • FEP’s should be categorized to clarify their purpose (@stevebate, @aschrijver)

Suggested improvements


I further clarified my thoughts on the FEP process: 3-Stage Standards Process: Guaranteeing an open and decentralized ecosystem - #40 by aschrijver

In addition with regards to minimizing gatekeeping my thought is that FEP editors shouldn’t be the decider on rejection of a FEP due to its controversial nature. Instead imho a vote should be called. This might either be:

  • A vote on the SocialHub and any member gets a say (and anyone free to join and also vote).
  • A fediverse-wide vote, e.g. via a toot with a poll, or hosted poll that does not require membership.

Repeating the diagram I posted to the Standards Process thread:

1 Like

What constitutes “controversial nature”? Can anyone declare an FEP to be controversial and subject to a vote for removal? Can that be for any reason? Is the rejection decision going to be based on a majority voting system? I don’t have a better system in mind, but majority voting seems to naturally lead to politics and voting blocs.


README.md and FEP-a4ed already describe the role of editors as neutral facilitators. It can be stated more clearly, though, I think we should write about that at the top of README.md file where people can see it.

Don’t forget about Boaty McBoatface!


My personal view here is going to be slightly nuanced, but with a few hard lines. To wit:

  1. Under absolutely no circumstances should a decision be made based off of a vote on a poll on the fediverse. That is entirely too easy to game.

  2. Similarly, having as a voting body just “members of SocialHub” is not a great criterion.

  3. Some mechanism of removal is, however, essential. As is some form of gatekeeping. Otherwise someone is going to produce the “Klan Guide to the Fediverse” and publish as a FEP.

Getting into the nuance:

  • In general, I actually don’t know that I consider the w3 or how they may or may not behave with respect to this as relevant.

    It doesn’t offend me particularly to leave it in there, but I also don’t feel we actually have any value by adding it as a step in this. If this is meant our process, let’s own it, and if we want the w3 to adopt something we can go yell at them to adopt whatever it is. One mechanism there could very well be writing an FEP and then talking with them about getting it adopted, and I would even encourage that as a direction, but we can call them different standards with different goals and criterion.

    Basically: FEPs are one way to gain consensus as a way to push a proposal to the w3. But this shouldn’t be considered “the w3 cherry picks what they want from this list,” but rather “it doesn’t matter what the w3 wants to do, we have this list and sometimes it is useful to demonstrate we already have consensus and implementations when making a case.”

  • The basic “may work well enough” version is to simply have a Code of Conduct and a set of requirements and let volunteers enforce those requirements. This does not solve the malfeasance concerns that people have (and, as with worldcon, those are significant) but it does mean (as with worldcon) that it “works well enough in the average case.”

  • I think it’s worth aligning on what we think of the FEP process just in general. Is it meant to be a set of “recommended / best practices” or is it meant to be “this is a mechanism for gaining consensus and disseminating ideas/information” or is it meant to be “this is a way of putting together a formal proposal for the w3, with an escalator that eventually terminates at the level of the w3”? I don’t view these as wholly compatible goals. I don’t think any of those three are bad, but I do see them as different.

    Basically, if I hand someone a FINAL FEP what should their takeaway be? That this is a best practice? That this is a stable proposal for implementing a pattern, but one that’s narrow, specialized, or may not be widely used? That this is a guide for some aspect with some stability and that has met some set of requirements, but not that anyone is currently implementing it? That this is on an escalator and that the next stop is the w3?

I guess my point ultimately would be it can be any of these things, but it can’t be all of them. So what would the most value be?


(I am also keenly away that the ATProto group seems to want to standardize through the IETF, which is a long road and not one they may prove ultimately successful on, at least in the near term, but it is worth calling out as further reducing the value of keeping the w3 in the model: we may be dealing with multiple standards bodies that have different approaches).


I agree. It seems reasonable to have rejection/removal gates for illegal material, personal attacks, and so on. It will be more difficult to define those policies for legal, but potentially offensive, material (which includes personal attacks, I suppose). Everyone has a different threshold for what they consider “offensive”.

I understand the discomfort in discussing some subjects, but I also think it would be ironic to have a discussion about an “open and inclusive” process in a closed and exclusive Discourse topic.

1 Like

Basically, to follow on with my previous thoughts, I would personally model it as three columns rather than three rows.

Column 1: Standards Bodies (IETF, W3C)

  • Highly formalized and restrictive about membership
  • Slow, process takes time, and there are often multiple stakeholders
  • Powerful, capable of redefining the spec ether formally or informally. Their statement carries an implicit “should.”
  • Specialized, focusing on their protocols and systems and have an inside-out view of the fediverse, seeing the fediverse through the lens of their protocols.

None of these are in themselves bad. It is in many ways appropriate for groups with more power to move more slowly and to have multiple stakeholders. They don’t want to release incompatible specs under the same mantle, so they also are going to lean more conservative in their approach to how they change and promote the protocol. This is often a good thing.

Column 2: FEP

  • Lightweight. Method for gaining consensus, developing best practices, and for communicating direction between fediverse projects.
  • Anyone can participate who isn’t explicitly banned from the process.
  • Generalist, taking an outside-in view of the fediverse, and reaching across protocols and systems.

In this model, we think of the FEP has standalone. It is neither beholden to the projects (Column 3) nor outside stakeholders (Column 1). It has the core advantage of being able to take that outside-in perspective, independent of technology and spec.

It also has more freedom. FEPs can contradict each other. They can showcase one implementation’s path forward and formalize it so that others can interoperate. They can break compatibility with AP or ATProto because they aren’t reflective of either standards body, or they can define subsets of compatibility that may not work for specific projects.

This doesn’t mean that they can’t have standards, however. FEPs can lead by example in what they require for finalization (requiring, for example, reference implementations to declare something “FINAL”). But this process can be lightweight, and defined via FEP, and self-attested.

Column 3: Project Implementations

  • Implementations that are oriented around a given project.
  • Focused on the needs of that project and may follow wildly different standards for choosing what does or does not get implemented.
  • Restricted participation. Usually to a group of core developers. Others may even be encouraged to contribute, but there are often a series of technical and nontechnical hurdles to them doing so.
  • Will seek to maintain compatibility within the project but may or may not care about other projects interoperability.

This is, for example, the Mastodon API or the use of an outdated version of web signatures.

Between-Column Flows

In this model most of the interactions remain similar to the layered model, but take on a different meaning. The W3 may still cherry pick from the FEPs, but it no longer looks like a “step” but rather that’s because they could cherry pick from other protocols as well.

I like this way of thinking because it promotes independence in the process (it doesn’t matter if, e.g., mastodon developers are invited experts in the w3), while still emphasizing the role of each of the groups.


I like this model. Rather than an implied hierarchy it’s different streams of activity that can influence each other.

I don’t know if the FEP description was aspirational or not, but the defined role of FEPs is very loose and vague. The goal of an FEP is not necessarily for gaining or even seeking consensus and an FEP can include a wide variety of types of material. It could be expressing the strong opinion of the author with no intent to discuss it or build consensus. It could be a description of the current behavior of some implementation (e.g., the Mastodon relay protocol). It could be an ActivityPub limerick or a collection of favorite #Caturday photos. It could be something that looks like a specification proposal but is tongue-in-cheek (in the same genre as the April Fool’s RFCs [see also: Wikipedia]).

(Note: I’m not expressing a judgment about whether this is good or bad.)

1 Like

Thank you everyone, for this most valuable feedback! @hrefna, I totally find myself aligned with your thoughtful elaboration, and like the idea of column orientation as well.

With regards to positioning FEP vs W3C I primarily wish that SocialCG will stick to its rather unique position. Where they are one of, or the only WG/CG that created W3C Recommendations without corporate involvement (i.e. as a true grassroots initiative). And specifically by:

  • Acknowledging the existence of the FEP (mention / cross-link to it).
  • Encouraging adoption by referring people to the FEP where things are off-topic for SocialCG.

That is imho then what the liaison of SocialCG to SocialHub (as facilitator of FEP) can be.

cc @codenamedmitri

1 Like

Creating Codeberg: Code of Conduct … check :white_check_mark: as something to definitely be more clear about.

As for other requirements and malfeasance. Not particular creative this morning in thinking about this, but suppose a FEP by a government agency, say NSA, that constitutes backdooring apps to expose PII or recommending weakened security protocols / encryption. Guess that might be covered by the CoC, depending how it is formulated, but likely do not match the out-of-the-box templates. What are other requirements to take into account?

a Code of Conduct primarily exists to make ppl uncomfortable (for example, the sqlite CoC makes us uncomfortable), so it might be a good idea to just… make the NSA uncomfortable?