Fediverse Enhancement Proposal (FEP)

As discussed in Scalling Up Cooperation BoF We’d like to try and put together a Git repository and templates for writing up documents that describe how things work on the Fediverse.

This builds upon work done by @cjs on https://library.activitypub.dev/ (see also post on SocialHub).

It might also be something that be used in context of what was discussed in the Experiments towards V2 BoF.

1 Like

This really sounds a good idea. We need to condensate the best practices.

i’ll take a look at this as well. This would also include things like Pleroma’s ChatMessages and EmojiReacts, right?

Absolutely. Any behavior that makes sense to document for interoperability should fit in.

Playing around with some ideas and reading up on some other similar things (Bittorrent Enhancment Proposals, NixOS RFCs, Scheme SRFI, et al.).

I think all this needs is a Git repo with following structure:

├── README.md
├── feps
│   ├── fep-a4edc7b.md
│   └── fep-00001.md
└── fep-0000000-template.md

An initial FEP would be describing the process itself - scope, format of document, publishing process. Here some initial notes on that: https://cryptpad.disroot.org/code/#/2/code/edit/XGsPnlKG6H8TRKznpSvjUKPm/

How about a live catch-up later today or tomorrow to get some initial ideas? Maybe @cjs can join in later as well?

This looks really good, I’ll try to write up a spec for our EmojiReact system in that. We can catch up on this tomorrow in a call or just keep discussing things here, i don’t mind either way



Just updated the Pad with an initial “Submission Process”: https://cryptpad.disroot.org/code/#/2/code/edit/XGsPnlKG6H8TRKznpSvjUKPm/

Cool, let’s keep discussing here and see if it makes sense for a call tomorrow.


I’ve pushed an initial Git repository: https://codeberg.org/pukkamustard/fep

Very happy for feedback and comments.

Specific things that are missing and I am looking for input:


Where should the FEP repository be hosted?


Would it make sense to have a category for FEPs?

cc @how

Pretty display

Currently FEP is just a Git repository of MarkDown files. I think this is good as it keeps required technology to a minimum.

It would be nice to have a nice interface (web site) for the FEPs. A simple static site generator make pretty HTMLs. There can be multiple websites that provide a pretty interface.

There are some additional meta-data that can be nicely displayed (see next point on Front Matter): related FEPs,

Front Matter

There is some required meta data that may be included in the Markdown file as such:

- authors: qfwfq <qfwfq@luna.sol>
- status: DRAFT
- receivedDate: 1970-01-01 # date when proposal became a DRAFT
- finalizedDate: ... # date when proposal becomes FINAL
- withdrawnDate: ... # date when proposal was withdrawn
- relatedFEPs: FEP-abcdef, FEP-abcads
- updatesFEPs: FEP-accdad
- errataOfFEPs: FEP-adfsaf
# FEP-011231: How to post a picture of your cat on the Fediverse

The two questions are:

  • what metadata is needed?

  • how to encode it?
    Static site generators seem to be able to parse YAML metadata as in example above. But YAML is not a nice thing. Is there a better way?
    Other markup formats (rst, AsciiDoc) natively support such meta-data. Is that worth not using Markdown for?


Any volunteers?

1 Like

There will be a meeting in the Hallway today at 15:00 UTC (17:00h CEST). @lain, @cjs and myself will be there. Feel free to join.

I think the metadata can just be a preamble section of the document:


  • some
  • meta
  • data


lorem ipsum


morem ipsum

And I love this idea, btw.

We could certainly add a dedicated section under #activitypub for FEPs. If you consider the first part in a topic as the canonical version of the FEP, publishing it under /pub/fep-* would make it easy to keep track of. And we could have a crontab somewhere to synchronize with a git repository…

The category can provide a template for new topics. Would someone be interested in working on a category description that describes the prices and on the topic template?

After talking with @lain and @pukkamustard I’ve finally got https://git.activitypub.dev set up with a repository. I had promised them within 7 days but it’s been 8, so I guess better late than never!

It still needs some work on my end:

  1. I can issue accounts for interested folks, reach out to me on Fedi (@cj@mastodon.technology). I didn’t want to open up registration because the mailer doesn’t appear to work to do the email verification, and I don’t want to open it up w/o that (spam concerns). However, for me to issue an account manually, I still require an email address though.
  2. I still need to spend more time with the Gitea themes and home page so it doesn’t feel quite so default-y.

Beautiful. Thanks!

Maybe you can enable Authentication/Registration via OpenID? That would allow people to sign-in using their GitLab or GitHub accounts. Gittea seems to have this feature built-in: https://docs.gitea.io/en-us/config-cheat-sheet/#openid-openid. Gittea also seems to support dynamic OpenID registration (allowing users to dynamically authenticate with their own OpenID provider), but I’m having a hard time navigating the Gitea docs to see how this works.

Optimally it would be possible for people to just use their Fediverse account to login, but most services do not act as OpenID providers.

Thanks, I’ve enabled OpenID sign-in and have manually issued accounts for @pukkamustard and @lain.

1 Like

The FEP repository has moved to its new home: https://git.activitypub.dev/ActivityPubDev/Fediverse-Enhancement-Proposals

1 Like

After much “fun” debugging sendmail, I’ve opened up the site to general registration w/ email confirmation flow.

If the email turns out not to be delivered, reach out to me and I’ll manually activate the account. I just don’t want the site to be overrun by spam bots.

I created a FEP Index from the new dedicated #activitypub:fep category.