Thanks for writing this out.

Open questions remain:

1. How does a community switch relays then? While keeping their identifier (that everyone stored) as usable, of course.

2. How can I edit an h-tag after publication of a non-replaceable event? I need targeted publication to not have fixed targets forever.

3. Cross posting content is not a solution for me. You don't send a mail to one person and then forward it to the other people you wanna send that mail to. I want to enable to users target content in a straightforward way. I'm not gong to ask a dev of a photography app to publish their release in one community and then cross-publish (what is that even then?) it the other communities he wants to target.

Reply to this note

Please Login to reply.

Discussion

Communities can switch relays by switching relays. It's the same as switching pubkeys would be, there has to be an authoritative identity. If that has to change, then it has to change. Pubkeys can't be censored by DNS, but they're harder to change. It's a trade-off, but communities need a host in any case, so it's easier to start there. Once you select a relay url, you can follow its pubkey to get updates on the relay's new location, then update your memberships from there.

I don't understand your second question. I don't know what a targeted publication is, but if it needs to be replaceable then model it that way.

Cross-posting doesn't have to be surfaced in the UX. Just create multiple events under the hood, like we do with DMs. When you DM someone, two events get published, but it only ever shows up as one message. Just have a button that says "post to x, y, z communities". Depending on how you do it, you might publish one event to multiple relays, a root event to your relay with three reposts with h tags, or just three copies of the event each with a different h tag. All three are legitimate approaches.

A relay is a service.

I need to be able to switch service provider, at any time.

When you make the relay url the ID, you need to own a domain name to switch services under the hood. And even then, you're still not really sovereign.

When you make the key the ID, you only need that to switch relay, blossom server, mint, etc... Same pattern for everything. Same pattern to teach my customers, once.

I'm not talking about switching IDs.

That's the same problem/opportunity we have for profiles in general.

True, crossposting and all the other things you list can be hidden and can work. They're just in no way as simple and transparent as the Targeted Publication event I propose.