Oddbean new post about | logout
 This is my second go around for posting a response (lost first draft due to a client issue) so forgive my terseness. Will be happy to elaborate further.

Here are some features that I think could help with communities on nostr. Please let me know if some of these already exist. 

- client support for switching focus of posts that only appear on selected relay
- paid relay usage to sustain community and spam control
- ability for relay users to  report a person/bot to relay
- ability for relay operator to see list of reported users/bots ranked by most to least reported for better triaging
- Ability for relay operator to kick a user off a relay
- to avoid slippery slope to centralization via shared black lists and create a social norm of forgiveness for one’s past actions, allow kicked off users/bots to rejoin paid node by paying again
- Client support for easy backup of note data and context (eg threads, posts made within a time window of own posts)
    - This can be done by connecting to own hosted node
    - Could also be a value by enabling cloud backups
    - Client would also support rebroadcasting backuped posts
    - Relays could use hash based deduplication to ensure above doesn’t blow up storage costs
    - Having easy backups allows users to permissionlessly migrate to another community relay in case the previous one becomes tyrannical
- Support easy creation of multiple identities using similar tech to how bitcoin wallet addresses are generated from a master public and private key pair
    - This enables having a separate identity per community to improve privacy
    - Could also support easy backup of master private key via seed phrase like bitcoin
 
Thank you for asking this question. I’m excited to hear other people’s responses. 
 You could also have a special kind for relay advertisements in order to enable discovery of communities from within nostr ecosystem rather than an external website. This type of note could be blasted to many relays. Clients could support clicking a button to auto add relay to your relay list. Storage costs may increase from blasting this type of message but this can be offset by charging to post on relays. 
 Another thing that came to mind to avoid relay centralization and both incentivize smaller community focused relays and reducing relay switching friction is tackling issue of finding people. 

Normally, the only way to find someone is for you to be on the same relay. People get around this by blasting to as many relays as possible but this doesn’t seem sustainable in terms of storage and bandwidth costs. 

Instead could we could blast notes containing only user info, particularly registered relays. The client could query users you follow and auto include relays based on the latest info blasted. When searching for a user you currently don’t follow, the client could include that user’s relays to your list and then you would retrieve messages from the newly added relays. 

Paying for relays can help handle the storage and bandwidth increases from blasting user info but it would hopefully be less data and sent less frequently than blasting posts everyone to improve discoverability.

A side feature I would like that is slightly tangential to this is allowing for users via shortref of their pubkey in the same style as git commits. This could enable easier searching  of profiles without the potential reduction of privacy that comes from using a NIP 5 address using a hosting service. 
 It would also be useful to select the relays to broadcast to when send message rather than sending to all relays. For easy selection, clients would ideally support labeling relays. 

This would allow targeted posting to communities. 
 Thanks for sharing! Your first 5 points currently exist. The others all look possible.

I think one of the developments in relay technology that is needed is a UI for relay operators to better manage their relays. In particular the reporting of users