I really dislike when clients expose the relay settings as "read" and "write"... Those words make little sense to users. In the context of the Outbox model, write is where your posts are located and read is where people send you their posts for your notifications. Your client is "reading" from both at all times. It reads from the "write" relays to get your posts, and it reads from the "read" relays to get the replies to your posts. It also writes to your "write" when the post is yours, and writes to everybody else's "read" relays then they are tagged in your post. On Amethyst, we use the words "home"/"outbox" for "write" and "inbox" for "read". I don't know if those are the best words, but it seems to make things a little easier to understand.
Sendbox. Getbox. Send to people. Get from people.
I would use outbox/inbox but you've already muddied the word outbox now by using it the opposite way. You post to your outbox relays and find content from your inbox relays. Isn't that basically it?
> You post to your outbox relays and find content from your inbox relays. Not really. You post to your outbox relays + you post to all of the other read/inbox relays of anyone tagged in the event. To find content, you have to use a mix between inbox and outbox. Your notifications come from your inbox. Your feed comes from every follow's outbox. The replies, zaps, and likes to each post come from the follow's inbox.
Replacing read/write does seem a little less confusing. Your client is "reading" from both at all times. It reads from the OUTBOX relays to get your posts, and it reads from the INBOX relays to get the replies to your posts. It also writes to your OUTBOX when the post is yours, and writes to everybody else's INBOX relays when they are tagged in your post.
Other's inbox relay are transparent from user's point of view, who should not have to worry about it. I think that the main source of confusion is related to the fact the 99% of the time two different relays, inbox and outbox, are not really needed, they can be a single personal public relay. Clients should just allow to add them, and only in an advanced configuration let the user tweak the read/write permissions (or deduce them by the actual permissions). Then the user can be allowed to add an optional DM relay (suggesting that it enforces authentication), a search relay, etc. As you see users think that the relay setting in Amethyst is quite confusing, after the Outbox model update; this approach could solve this.
But how do we keep paid relays, or relays that restrict who can post, out of the inbox section? Similarly, how to we keep relays that restrict who can download from the outbox section? It's not even about restricting them because some users actually want that. For instance, if they use nostr.wine for Inbox, only notifications from paid users of nostr.wine will show up. Which is great if the person is getting spammed. But the average person adding nostr.wine to inbox just gets pissed because they don't understand how nostr.wine works. Explaining that has been our main issue. The Inbox/Outbox difference seems to be fine with users. But even when they understand the difference, they misinterpret what happens when setting up each relay in each section.
The idea is actually not to have inbox and outbox sections at all, but a "personal relays" section that smartly manages read/write flags behind the scenes. If a relay requires auth to write, the client should (could) disable the read (inbox) flag. The average person should just add a couple of big free relays and maybe a couple of paid relays. No need to explain much to new users; as soon thwy will understand more about Nostr, they will be free to tweak the details.
But then we need to make that info available to clients. In many relays, clients don't know if the user is being restricted or not. There is literally nothing to inform the client.
The restriction issue is an additional point, which remains valid for any user interface. I would only start by simplifying the way relays are exposed to the user, but not blocking them if they want to make more complex configurations.
No, because if app can't figure it out by itself the UI teach the user to do it. If we convert to your idea now, nothing is going to work because people will just add nostr.wine to the list and will never receive a notification.
How is the situation different today if you add nostr.wine to both incoming and outgoing mail, or flags both read and write, because you don't know the meaning of the terms and the implications, and then as is typical you turn everything on “to try if it works”? Since nostr.wine requires auth the app might explain that this relay is poorly suited as a general inbox, but it might still be useful for users registered with it, and then suggest adding another public one, or disabling it as the inbox (read). @Mike Dilger recently added a relay testing tool that could be a good example of how to direct the user to the most appropriate use of relays.
I think inbox/outbox are the most well understood terms. Other people put things into your inbox, and so you need to check it for new things. You put things into your outbox and everybody comes to see what you have posted. Of course you also put things into other people's inboxes and you read things from other people's outboxes, so clients have four kinds of paths (actually 5 since reading from other people's inboxes lets you see full thread replies). Gossip also has an unpublished outbox called "write" which instructs gossip to always write to this relay (in addition to the norm) whenever it writes. Gossip also has an unpublished inbox called "read" which instructs gossip to always read from this relay (in addition to the norm) whenever it is seeking something. These terms and usages might be confusing and I'd take feedback on alternate names for these.
I think "inbox" is a no brainer. Everyone understands what it means. Outbox is not as easy because email clients never made "outbox" a real thing. For that, I do think "Home" could be a better name because it suggests that this is the relay that has your posts for others to see, your home on the web. And you should be very careful on the relays you select to be your home. "Getting posts from people's outbox" is a weird thing to say. And "Getting posts from people's home relays" is better understood. FYI, 1. I use kind 10013 to your "unpublished write" relays, which I call Private Home as described in the Generic Draft NIP: github.com/nostr-protocol/nips/pull/1124 2. Your private inbox to me is not an inbox. It's either an index relay (like purplepag.es) or a new kind that could lists large relays on the hopes of finding events the client can't find anywhere else.