all i am saying is we should use words to mean the things they mean. If anything is a nostr client then nostr client becomes a meaningless phrase.

I think as a dev I find this frustrating because they try to compare their “nostr client” against others to show how amazing they are, but it’s a lie. Compare amethyst, nostur, gossip, etc against each other sure, because all those are on the same playing field. Comparing primal to real nostr clients doesn’t make sense, because primal is more like bluesky or twitter, where they control all the infra and what everyone sees, censoring people from their algos, and monitoring user searches.

Do you see me bickering about this about other clients? No, i just want people to understand what is actually going on so they can make informed decisions instead of just pretending they are not a bad actor at this point.

Reply to this note

Please Login to reply.

Discussion

Primal displays nostr content, but isn't a nostr protocol client

Yeah nostr frontend? I dunno what you would call it. If people want to use a frontend then fine.

clients themselves have variations within them: relay pool client, outbox client. Different ways to pull notes. I think this would be good to distinguish as well, then users could make an informed decision about that. fiatjaf is more interested in the latter for instance, which damus iOS currently doesn’t satisfy.

"Viewer"? "Proxy"? "Client-as-a-service"? 😂

maybe nostr gateway would be good. If the gateway goes down then you know you would have to switch to a client to get the raw data directly.

This is still probably going to be over the heads of normies unfortunately. but having words for it will be helpful at least.

I see .

I think gateway is probably a fair term. Then the caching service is acting as the gatekeeper for what is viewable via the gateway, which is an accurate assessment of how it works. You can, theoretically, use a different gatekeeper... if one existed.

Opera calls their analogous browser "Mini", and the backend a "compression proxy server"

They should be called out if they say something that is untrue.

But what is a nostr client? What makes a client a nostr client? Does it make sense to enforce what one can call a nostr client?

I agree that you shall not compare apples to oranges.

But also nostr was built for a reason. Other clients that does not fully support that idea shall miss something, otherwise the original idea of benefit of nostr does not hold. If they have a benefit, they shall outcompete others with that benefit, or? (Not this easy I know)

Also it does not help, that it is not that general, that people use social media with spending X amount per month. Social media is free in the eyes of many.

A nostr client connects directly to relays via websockets and pulls down notes via the nip01 specification. This is the bare minimum. If you don’t do this you’re not a nostr client.

Imagine creating a web browser that doesn’t connect to web server directly. Instead you connect to a central server that makes the request for you and completely MITMs you, losing all verification.

This server can tell you what sites you’re allowed to visit, and will randomly stop working when the server goes down.

You wouldn’t call this a web browser (aka web client). It’s just not the same thing. People who build real web browsers would be frustrated that they are marketing themselves as the best new web browser for the http protocol.

People trying the web for the first time get spied on, censored, and generally have a slow and unreliable expeirence. Now they think: wow the world wide web sucks and leaves.

This is why it’s important to use words properly and not let people affinity attack well defined terms.

This is probably the best explanation of the issue with calling Primal a "client" that I have seen. Thank you!

If the app you are running on your device isn't reading directly from Nostr relays, it's probably fair to call it something else, rather than a Nostr client. Otherwise, it would be akin to calling something a Bitcoin node when it isn't downloading and validating blocks locally, but merely trusting the information sent to it from some outside source.

I think I like your idea of calling Primal's apps "Nostr gateways" instead of clients.

Yeah, we discussed our architecture internally, at length, and decided to stick with NIP-01.

Both for transparency and simplicity, and so that anyone can host or fork our client, and add his own community relay, and have all core functionality immediately work and all the events from that relay immediately present. It also means that a user can log in and easily switch to using their own relay list for reads and writes, with a big toggle on the landing page. That way, even the person running the community relay can't stop them from reading and writing whatever they want, using our client.

And all communication is instantaneous, with no weird lag because of filtering, blacklisting, or the funnel effect of everything being pulled through one server. You aren't stuck using effectively one relay to read, and if one of the relays goes down, you won't even notice.

I feel like that's the Nostr "secret sauce", so abandoning this principle detracts from the usefulness of the protocol and undermines the censorship resistance of the original deisgn. I'm hopeful that Primal might actually implement that as an option, tho. We'll see.

The most recent update was definitely a step in the right direction. Time will tell.