Oddbean new post about | logout
 Here are some unfiltered thoughts about how #communities online and offline could use #nostr.

I love how Nostr has given us a viable, decentralised alternative to social media. 

At a conceptual level Nostr is superior to Mastodon’s use of ActivityPub. But I think Mastodon does communities better.

Federated servers are a good way of signposting the intent of a community. People can join a server about something that interests them. On the flip side of this it is hard to move servers and you can’t join multiple servers.

Nostr doesn’t have this issue as multiple relays can be joined. BUT it is almost like a homogenous blob. The only way to filter your feed (that I know of) is through hashtags. Even then it’s difficult to establish a “community” that can focus on a specific topic as anyone can use the hashtag (s**tcoin bots for example).

Without understanding all the fundamentals of how relays and clients work I pose this question.

Could “special” relays be created that focus on specific types of content? They are write protected through some community website that users sign up to. But at the same time can broadcast and be read by other clients/relays to retain the advantage of decentralising notes?

Interested to hear from those who have worked on Nostr and ideas that people have

#plebchain #asknostr #nostrdev 
 Some clarification:

Online - online communities 
Offline - physical communities that can use the Nostr protocol as a decentralised way to communicate 
 Yes you could have content specific relays with a restricted set of npubs that can write to them (paid relays basically work like this - when someone pays the fee their npub is whitelisted to be able to write to the relay). Or like you say you could have some sort of restricted web client that writes to that particular relay.

In Damus you can turn relays on or off when viewing the global feed so you get notes from a specific relay or set of relays which would give you a way to view just the content on that relay. I haven’t really looked to see if other clients implement something similar. 
 Didn’t know about toggling feeds on Damus. That’s handy! Particularly when you want a view from a specific relay. Reminds me of ActivityPub where on Mastodon you can follow accounts from PixelFed and Lemmy and those posts will be viewable in your Mastodon client 
 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 
 Yes 
 Thanks, something for me to take a look at. I would rather contribute to someone who already develops a relay than create another one. 
 Take a look at fiatjaf's relay stuff, I think it's probably closest to being useful this way 
 Thanks, I was going to look at nostr-rs-relay but I fiatjaf's relay is in Go (I think?) which I'm more familiar with 
 Yep, a couple different go projects 
 Something nostr:nevent1qqs0d8mdlw7v8dsk29p45gf5fup8rwflh5h8evg2xxqfkgv7tapevjgpzpmhxue69uhkummnw3ezumt0d5hsygyhcu9ygdn2v56uz3dnx0uh865xmlwz675emfsccsxxguz6mx8rygpsgqqqqqqs0w66pz