Onboarding new developers to the Fediverse


Convener: @essentialrandom@indiepocalypse.social

Participants who chose to record their names here:

Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:

Key questions:

  • Where do I start?
  • What services are out there?
  • What are they doing differently from each other?

Topic ideas - how to manage test instances when getting started

Problem: there are a lot of documents that need to be collected to figure out what needs to be implemented, each single document doesn’t tell you the whole story of what needs to be implemented, then there’s difference between theory and practice (like using URL to identify actors)

DemocracyLabs has given a lot of thought to volunteers recruitment and has created a framework to get people into an open source problems. https://www.democracylab.org/

A developer network was started to have a resource specifically focused on getting developers some resources to help them understand the fediverse landscape.

How do you create your own project without accidentally breaking other people’s server? For example overwhelming servers with request or indexing things you’re not supposed to index. How do you know what problems you’re likely to cause and how others have solved them?

Developers continue hitting the same problems over and over again. Also there is a problem with brigading people who attempt new implementations and might do things “wrong” without malice. There is an assumption people come in knowing everything, but there’s no way for them to know it beforehand.

Would be nice to have a course for the basics, though classes migth be too linear (and there may be a need for offline resources that cover part of it).

A testing suite would be a very important thing to have (e.g. https://feditest.org/)

Would a wiki be a good solution? this was the idea behind https://fediverse.org/. The challenge is that it’s unclear who gets to define who these norms are, there’s too many subgroups that have different culture. Once you say “these are the norms” people are going to see that as a form of centralization, there are theoretically many different norms. Rather than saying norms you could have a collection of people writing up how they did it.

ContentNation(?) showed off a feature that is part of the public API, but it was seen by people as “scraping” because it’s not the way Mastodon does it.

This is a multidimensional problem. A lot of the people that react strongly but don’t understand the way AP works and they may have expectations of privacy that aren’t there theoretically and are only there because that’s how the instances/software they see works.

Resources: a real problem with AP is that it depends on other standards from certain services (like webfingers for identity), however the fact that these are used is kinda “folks wisdom”. Sometimes in the next year there should be a list of specs and how they’re used in the fediverse.

One attendee to get together small self-contained implementation of parts of the “fediverse stack”

A common confusion for users is what is client and what is server, so as a user you don’t know whether a feature is a feature of the backend or of the frontend that you’re using specifically.

Fediverse.org forked existing documentation, and the idea was that the entire community was supposed to contribute to it. Currently most documentation is owned by a specific person. There were some PR from projects to add how they do it. There are questions from developers who know a lot, and some of these have been answered. There’s some video meetings, and in the last one there was discussion of the test suite. Show and tells were also popular. It would be nice to get some fundings to get some writers, but no one has attempted it. Feditest was able to get some funding.

Visibility is a problem, even FediForum was really hard to find out about. There is a community group mailing list from the W3C. The CG works under W3C rules and not everyone is happy with those. In a decentralized system then centralized communication is an issue. It’s hard cause there’s a lot of “portals” in the fediverse, but also marketing something in the fediverse is hard.

One thing that was done was asking people to discuss what they wanted to talk in FediForum and then tweet it out at the people, which would get spread. This was effective for outreach.

There’s various initiatives for outreach but they’re different groups and people don’t know which ones to join. It’s very spread out.

There should be a common organization that is run cooperatively and is one set of documentation, rolling up things we have into this. The problem is that a lot of people in the fediverse space aren’t that much into governance so it’s hard to do something like this.

To bring up Firefox it was very useful to have an “enemy”, so focusing people against a “certain entity” can galvanize a community. It can be very helpful to get people energized. Without a common enemy people drift off. Meta currently is seen as the nemesis but it’s also a great opportunity to open the web. There is a lot of ambivalence there. What are we galvanizing people for? What are we asking people to contribute to? It’d be nice to give people a sense of what we’re fighting for or against.

Sometimes people in free software communities emphasize too much what they’re against, rather than what they’re for. The common enemy should be an abstract concept rather than a specific entity.

The value proposition of the fediverse is “the alternative”, 99% of people do not relate to abstract principles. There is no work done in articulating what the value proposition of the fediverse is, even in the “marketing” chats.

Johannes’ version of the pitch:

  • anybody can communicate with anybody
  • no middle man who may meddle in the conversation
  • using any software you want

Other elements of the pitch:

  • you can have privacy
  • you can have control of your data

People ask “why? why should i care?” and then to explain the positive one must go to explain the negatives (e.g. how meta is using the data, which then makes people uncomfortable).

Aside from Mastodon there aren’t a lot of good decentralized software where people can go to and not feel like they don’t understand what happens/get brigaded. Threads is a chance to do this. There isn’t a lot of thought for the end to end experience. BlueSky is focusing a lot about user experience and is using a lot of different protocols with an eye towards eventual decentralization. Ideally Mastodon would be just a stepping stone towards what the future would be.

The amount of privacy people desire in theory is also in contrast with what people actually want (their revealed preferences)

What is the roadmap of the fediverse? What does “the fediverse” want to get done in the next 5 years? No one has articulated it, and if we did this then wit ha roadmap it would be easier to energize people and focus them on an effort. Who would do it? A large portion of fediverse users are conservative (“don’t break what we have!”) but that makes it hard to promote innovation.

If one wanted to implement somethign new in the fediverse and implement something that is not a post or a poll, what is the likelihood that any client would actually eventually see the object that I publish? Right now every server would probably throw it away or convert it to a note. => There should be a proof of concept with a small group of servers and once it’s proven then that usually gets spread.

Do servers have a way to say “this is object you’re getting that you cannot display” so they could see what they’d be interested in implementing.

A good thing with hashtag is that you didn’t really have to get permission from any platform. The way servers are implemented today, there are a bunch of innovations that are obvious that aren’t going to get anyway because there’s certain centralized parts of the fediverse that aren’t going to care about it. Innovation also requires social engineering, part of innovation is evangelizing the idea. Because Mastodon is only supporting notes, it’d be very hard to implement articles too. There could be (is?) a fallback object so that at the very least you could start getting some signal to users that there’s a post that they cannot see in full. It would be nice for users to be able to tell the server what type of object they want to see. BlueSky has something called a lexicon that can help.

The problem is a lot of semantic is lost in the conversion between a new type of object and the “display” version of it. You can have a formatter that converts it to display, but the semantic is hard.