wards for manyverse
In the history of scuttlebutt we've had two examples of popular accessible clients resulting in a lot of pressure and burnout for the core developer. I'd like to invoke some reflection on that, because I want #manyverse and @staltz to live long happy lives.
What I've seen is that supporting the most accessible client means:
- you get ALL the complaints (bugs, feature requests)
- developers want you to include their thing
- you become the standard setter
1. you get ALL the complaints
If most beginners are using your thing then you're the person who hears most of the complaints.
Most importantly you receive complaints about the client you've built, and complaints about scuttlebutt (the protocol constraints, current state of whatever...)
2. developers want you to include their thing
e.g. gatherings, polls, chess, fusion identity, private groups, tags, the latest "thread fork spec", ...
My assessment of this one is that it's actually a secondary pressure which comes from having no easy way to have multiple apps using the same machine/ database/ identity, so we default to ramming it all into one app.
A lot of work has gone in over the last year to mitigate this pressure - namely meta-feeds, fusion identity.
BUT, to get out of this trap we probably need all clients to integrate things like fusion identity... (and private groups).
3. you become the standard setter
e.g. Patchwork 2 implements thread forks. IMO this implementation was not clearly written down, and led to some confusion. It also painted us into a corner a little bit (I think it could have been thought through a little more). But now we're stuck with it because we've crossed a threshold of use.
This one can create interpersonal tension with other devs. And it can also create tension because if we require a developer to write a clear spec and review it with peers every time they want to publish a new message type.... that's a total grind/ buzz-kill. Perhaps some policy about assessing the impact and "locked-in-ness" resulting from a new message type might be useful.