If we get to the point where nostr:nprofile1qqsdv8emcke7k3qqaldwv956tstu40ejg663gdsaayuuujs6pknw7jspp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduyhj993 is purposefully censoring you then we’ve won
Discussion
are you evil or retarded?
Just tired of the incessant whining about Primal not being a Nostr client. It’s an open protocol. People are going to build shit you don’t agree with. Out of all the clients, Primal is doing the best job of bringing new users here. If we ever do move beyond the bitcoin circle jerk that this place is, then Primal’s algorithms, auto-follows, and caching relay strategy are just the start of many design choices that Will and other purists disagree with.
+1
Because let’s grow 🌱
But doc misrepresenting Nostr isn’t cool. That’s like a shitcoin saying it’s bitcoin.
I don’t think Miljan is misrepresenting his client or Nostr. He made a design choice to improve user experience and every decision has tradeoffs. He’s discussed it, and the source code is freely available. Your analogy between primal and shitcoins doesn’t work. I can’t use solana on the bitcoin network. But I can still interact with the Nostr protocol via primal.
you can use bitcoin on solana through a trusted intermediary
the analogy is sound
but it would be even more accurate to say primal is coinbase
I can’t have bitcoin on Coinbase and then open my sparrow wallet to see my coins.
If we’re comparing it to bitcoin I think it’s more analogous to running your own node or using someone else’s. Or using Breez vs WoS.
of course no analogy will match exactly otherwise it wouldn't be an analogy
but I'm fine with yours too
just tell me what will happen when primal get a court order from turkey to censor someone
They comply. And you use another client that has better censorship resistance and worse Ux. Or fork their client and run it yourself with your own caching server.
does primal relay primal user notes to other relays? so you can drop your nsec in another app?
Yes. The relays listed in your settings on Primal are the ones where your notes will be written to and accessible from other apps.
thank you! so even if ISPs block primal.net and brick the app temporarily, we just pick up our keys and move the party somewhere else
Sure. If your ISP blocks Primal, if their caching relay goes down, if they start censoring users... You can just use a Nostr client that isn't affected.
You can have wrapped bitcoin on ethereum and other chains.
In the source code Semisol and others have pointed out how their cache relay works and how they reconstruct notes in which they are replacing users media links with their own primal links. By altering the note they remove authenticity. Even if it’s the same media they have altered the note by removing the users media link and added their own link in which the user never signed or agreed to. What’s stoping them from altering an image now that they control the media file. This alone is enough reason to consider primal not a Nostr client.
I haven’t heard that and I’m very much against that if true. Do you have a note you can share that references this?
nostr:npub1m4ny6hjqzepn4rxknuq94c2gpqzr29ufkkw7ttcxyak7v43n6vvsajc2jl nostr:note1aqztmcwv5nc2d9sv78emw289f7ykv32kyzj3xfmvwkmz05trv7aqt28ja9
Can confirm. If you go to Primal's web app and look at any image, it is assigned a Primal proxy URL. For example, look at this note from nostr:
On primal, the image URL begins with `r2.primal.net/cache/b/c0/6b/`, but Jumble.social correctly shows that the image is actually hosted on nostr.build.
*...note from nostr:npub10wv37amdqnv8edw5yktgsxr62g8k4lqkk2u66fk6c6uwuakzssxsf4v22x."
Hmm… don’t love that. Just checked on iOS though and I’m able to copy the raw json event as well as the img url which points to Nostr.build. I’ll try on my pixel and on the web app later on. Thanks for sharing that

There's still something funky happening with the mobile app, too. For instance, this note shows tje image has been removed from nostr.build on most clients, but it is still visible on Primal's app, until you tap to view it full screen.
Primal screenshot:

Expanded:

This suggests that primal is showing their cached version until you open the image, rather than just showing the original.
I deleted the image from nostr.build
Now, bear in mind, Primal is not the only Nostr app that does this. Coracle I would definitely classify as a Nostr client, yet it also uses an image proxy, which I assume is why media sometimes takes so long to load on Coracle.
For instance, the same note from nostr:npub10wv37amdqnv8edw5yktgsxr62g8k4lqkk2u66fk6c6uwuakzssxsf4v22x on Coracle loads the image URL starting with `imgproxy.coracle.social/x/s:640:1024/"
Build something properly and the users will eventually come. Until then who cares. It’s about building the car not winning the race. Gaining users without building the car right is meaningless IMO. Play the long-term.
Building something 'properly' means building, learning, and refining based on real usage (with actual users) rather than waiting for theoretical perfection. I’m grateful for devs who value user feedback. IMO.
A million cooks in the kitchen will just lead to a mess. Luckily with nostr I can test my app without releasing because it has a ton of users already! All nostr accounts and posts appear.
Compromising on basic functionality in exchange for scale is exactly what all the shitcoiners do. There are basic principles that you just don’t violate. Building an app isn’t the same as building something that’s supposed to be embedded with cypherpunk values. If you don’t get it, you aren’t a cypherpunk.
Ah now the ad hominems come out. Please educate me on how to be more cypherpunk. I just find it disingenuous that other devs call Primal (an open sourced client with an open sourced caching relay) “proprietary”.
Anyway, I’m genuinely curious, what exactly do you have a problem with regarding Primal? I learned today about Primal supposedly caching images and then pointing towards their own server instead of the original url in the imeta tag. I was surprised and really don’t like that choice, but I haven’t confirmed it myself yet and want to learn more about why they do that. As a dev yourself, what are your major issues with how they do things?
Lmao — it literally reads from one server and I can’t change it. How is that decentralized? Decentralization entails a distribution of computers I can switch between freely. You understand nothing. 🤦♂️ like I said if you don’t get it, you’ve got some learning to do.

You don’t understand. They built a server that only their app connects to isn’t a nostr relay — it’s a primal relay. Literally no other nostr apps can connect to it.
We built a relay too, but any app can connect to it… Damus and beyond.. it supports custom features our Nestr app has, but we made sure to ensure backwards-compatibility. That’s how you build on a protocol.
you can be tired as much as you want but you dont get to change the meaning of things sorry