This is the part nobody gets.

Nostr clients are defined as software interfaces that sign notes and read/write to relays. That's why my CLI is a client, even though it resides on the same Linux laptop as my relay, and can only be used over the terminal. Where clients reside or run (phone, remote server, local browser, cloud, desktop, refrigerator, etc.) isn't what decides that they are clients.

Nostr is, fundamentally, a client-server architecture, with the relay functioning as server (event store) and the client simply displaying what the relay sends it, according to the user's settings.

Placing an _additional_ server _between_ the client and the relay, is a fundamental change to the architecture. You can do that, perhaps because you want to curate or park the data, but as we can now see in real-time, many of their users didn't know they were doing that. It isn't immediately obvious.

Reply to this note

Please Login to reply.

Discussion

Why is this significant?

The current setup means nobody can stop you from reading or writing whatever you want, and sharing it with a targeted or general group of others. The more relays get pushed back, the less this will apply.

I think Nostr apps need to come with client/relay pairs, but not so that users only have to write to one relay.

Publishing a relay with every app increases the number of relays. It also increases the proportion of relays that are tailored to a specific set of event kinds, as different apps will need relays focused on specific types of events. This will diversify the relay landscape, which contributes to the health of the Nostr network.

I like this, but I prefer having this custom relay in a setting or config file, so that someone doesn't have to change the code, to dislodge that relay.

I agree, it should be configurable. The default relay an app ships with should be a starting point, but the app should preserve the user's freedom to read from any relay he or she wishes.

Having a default relay intended to handle the types of events the app is built for gives a better user experience at the outset, as users don't need to manually configure a relay set to start seeing things on the app.