March ssbc-grants Proposal: user invites.
I have spent the past two months working on improving epidemic broadcast trees good enough to roll them out fully. That is just about ready, and I decided it was best to focus on another onboarding-themed proposal: user invites. We've discussed this idea before but unfortunately it still hasn't happened. However, since we now have ssb-ooo we have some new options to play with.
User Invites
Currently, to join the ssb network, you need to "join a pub", or be onboarded by someone in the same wifi network. Personally, I have never liked the phrase "join a pub". It makes ssb feel federated instead of p2p-decentralized. People are frequently confused about what pubs are. But we have needed them to be able get people into the network.
This proposal won't remove the need for pubs, but it hopefully will remove the need for pub invite codes. Instead an invite will come directly from another human, a member of the network, not just copied from a web page. This means when they arrive they are not a stranger, but were invited in by someone. So, in a way this is also a moderation feature.
rough sketch
A regular user, Alice creates an invite code for "Bob" (via user interface in their client) then sends that to their friend Bob via some other messaging system that they already mostly trust, such as email.
Invite codes will have names preassociated with them, so when bob arrives, everyone know's it's Alice's "Bob". It doesn't have to be their real name, and Bob will also see the name before confirming. (Alice will be warned to consider Bob's level of desired privacy before naming them)
From there the new user pastes it into their app in the same way an ordinary invite works. This will allow Bob to connect to a pub and say "It's okay I'm with Alice". This will cause the pub to follow Bob, but Bob will only follow Alice, and not the pub. (but may replicate the pub via alice's 2nd hop)
When Alice next replicates the pub, she'll get a notification in her app that Bob accepted her invite, (with invitation to follow back). If Alice follows Bob, he is now fully in the network.
this proposal includes
- figuring out all the details how this will work (I intend to take this part very seriously, there are security/privacy considerations)
- implementing server stuff & tests
- writing library to make pull requests into client apps easy
- making at least one PR to a client app (probably patchwork)
ETA
I'm hoping this can be achived in march, but depending on how much life interferes may be march-april.