The fact that @primal has a backend in no way threatens #Nostr as a protocol and open network.
Think of it as a full stack client. Backend client code + front end client code. The source of truth remains the relays, and users maintain complete control over their keys and handle.
Don't get gaslight by butthurt devs. #Primal is taking the #Nostr experience where users want without lockin, censorship, or moats.
Thread
Login to reply
Replies (41)
Its a good bootstrap yes
ill think of it how i want to think of it. based on its actions, bot on its many words.
I'd trust @jb55 over most devs any day
It's more of a question of client architecture than it is an election of personalities, IMHO.
Aside from my previous statement still standing then, it was you who said "don't get gaslit by butthurt devs"
It's true.

The fact that @primal has a backend in no way threatens #Nostr as a protocol and open network.
Think of it as a full stack client. Backend client code + front end client code. The source of truth remains the relays, and users maintain complete control over their keys and handle.
Don't get gaslight by butthurt devs. #Primal is taking the #Nostr experience where users want without lockin, censorship, or moats.
View quoted note →
Dumbest take I’ve ever seen. You need to learn computer science/CAP theorem. All the readable data is centralized on one server. That isn’t a feature — it’s shitcoiner level centralization.
I worked in software for nearly 2 decades, ding dong.
How does the persistence tradeoffs @npub16c0n...6nvr and friends made have anything to do with the debate at hand : whether or not a full stack client undermines #Nostr.
Please explain to the audience how throwing out CAP theorem, a term for navigating data persistence constraints, as it relates to Primal's cache implementation, supports your presumed argument that the presence of a backend in a client somehow degrades user sovereignty.
“Software” isn’t distributed systems. This isn’t Silicon Valley. You clearly don’t understand the CAP theorem.
Here’s a crash course:
It's a cache, you moron.
You can’t change which relays you read from. It’s not rocket science.
Clearly, there are trade-offs between scalability and UX versus decentralization. No one has found the golden rule to have everything at the same time, and I think it will be a good experience to better understand the dynamics as a social media over a decentralized protocol.
In the end, we cannot find a new path by doing the same thing everyone else is doing, and we can always choose another client if we dislike one or another.
Clearly Laser is going to keep his head in the sand. 🙄
I hope you all get a chance to see what @jb55 said in this tweet below, and if you don’t understand what he meant then listen to the video. @ODELL @npub16c0n...6nvr
And @jack, I know you’re probably watching this drama unfold… just get in the arena already. Work with Will or Martti. Work with the purists. Make a client yourself, like you alluded to 3 months ago. Don’t compromise on the CAP theorem; who makes the client isn’t as important as decentralizing the data itself — the client code can live on beyond you.
View quoted note →
Calling it a cache is just a way to distract from the fact that it’s used as a crunch to deliver all the data to all the users. Users can’t read data from any other server.
Achieving quick speeds with a centralized server is just a sloppy shortcut that compromises on our values.
crutch*
Hmm @jb55 said the primal server was proprietary but after looking further I found it here:
I don’t see anyone else running one, but technically relay operators could run this alongside their relay to service Primal users.
Although, it feels like a fork of nostr. Users can’t connect to normal nostr relays — therefore it isn’t backwards-compatible. The way we built Nestr was:
1) You can pull notes from normal relays
2) You can only pull the Merkle trees and blossom blobs from blossom servers and HORNET Storage servers
We preserved backwards-compatibility. Primal compromised on backwards-compatibility.
And there’s literally no documentation on how to change which relays the cache pulls from. 🤦♂️ It wasn’t built with other people easily running it in mind.
GitHub
GitHub - PrimalHQ/primal-server: Primal Server includes membership, discovery and media caching services for Nostr
Primal Server includes membership, discovery and media caching services for Nostr - PrimalHQ/primal-server
Even if I had documentation to point the primal cache to a relay I host, it would just duplicate a ton of the data.. so inefficient. The goal is to have many relay operators to choose from. Otherwise, we’re all just playing pretend here. LARPing…
It’s just dumb that a technical tradeoff discussion between me and laser launched into a full blown campaign from odell and miljan to call it fud and odell to call me a liar. Apparently you can’t criticize them.
Where are the developers saying i’m wrong? So far it has only been investors and influencers.
Most people *dont* understand that its only reading from a off-protocol server, the relay list is super deceptive, i’m also tired of explaining this to people and people saying im making it up.
I’m talking about *facts about how things actually work*. its important for people to know this so that they can make informed decisions.
Its not really fair to compare a real nostr clients to a client-single-server model, they are completely different systems with different properties and security models. Can we not talk about this? Noone cares? Ok great, im talking to people who do.
people care.
and you’re not wrong about Primal. Or that it IS misrepresented.
But if you actually want to know why they are responding this way, it has to do with who you are, and the weight your voice carries. IMO, you spoke like you would to a friend about something that bothers you. Buy there is an unspoken expectation that you become much more measured and diplomacy in how you speak about these kinds of things, to preserve others reputations.
It isn’t fair, or even right, but it is what it is.
Tech > Politics
ironically, this comment is political. and so are you 😏
Engineering trust-minimized, distributed systems is guided by principles beyond mere social consensus/politics.
Just like how the properties of money aren’t arbitrary (despite what fiat institutions say) — if you studied the history of money you’d see that principle applies to both in the same way here.
There is always a wild reaction whenever engineering discussions come up. “Nostr wars”. i don’t think people realize this is how engineers naturally are.
It’s the only thing that matters 🤷♂️
Anyone can build UX.
The cyber hornets are supposed to defend these principles, but they are dwindling… we have to do it else no one will.
Hopefully it will attract more of them. 🐝
very true. always thinking about how someone might feel, or interpret something takes all the brain power needed to solve the actual engineering problem.🤷
You can change the caching server I’m pretty sure
if hornets are symbolic of principal conviction in this analogy,
sugar catches more hornets than fire. diplomacy has a more efficient outcome. it has always been thus. especially for a generation prone to conflict.
Still seeing you on Primal. May this never ever change even though it technically could?
With respect
Anyone who works with engineers at arms length knows this is exactly how they naturally are.
High precision high compulsion unwilling to budge a micrometer if doing so could lead to error or harm or embarrassment. In short high signal and noise intolerant. But sometimes stubborn for lack of a better word.
Then of course there are physicists….
cyber ostriches?
Haha now that’s a brand 😆
Burn the bridges to charlatans or be burned by their false principles. I’ve tried to be diplomatic in the past. I’m done wasting my breath.
I said it 6 months ago… specifying the risk of their giant cache layer. It’s clear what their philosophy is. Shortcuts are quick to ship, but ultimately fragile
“I should be able to go to your profile, open your list of relays, and tap on the new relays I want to connect to. The relays in the list I’m already connected to can be present too, but with a different icon beside them, just like on Damus.
Preventing users from being able to discover the relays of people they follow is antithetical to nostr’s philosophy of data portability. We should make moving relays as easy as possible rather than relying on Primal’s giant cache layer.”
View quoted note →
Cyber Ostriches Unite
Doesn’t have the same ring..
what's up with physicists?? 😤
No disrespect meant. Two observations:
In my experience physicists interactions with one another can be easily mis interpreted by outsiders (and I am one).
Eg hyper aggressive attempts to root out errors can appear as mean infighting and egomania or toxicity.
And there is meanness and egomania present in physics of course, it’s just been my experience that outsiders looking in often just don’t have the training / exposure / mathematical chops to discern which is which. To make a terrible analogy- if I am not actually on the team, and I was never actually in the game, then I am not in a position to judge the locker room talk afterwards.
I also find physicists get so sharpened by the empiriometric precision required by (and successful in) their field they can get frustrated when that tool does not work well in other areas. They sometimes default to assuming sloppiness in applying the tool rather than realizing it just does not work well everywhere. And if they cannot shake that assumption you get a physicist thinking “find and root out the error” and a non physicist thinking “you are totally using the wrong tool” and they talk past one another- sometimes unpleasantly.
Primal can censor anyone they want anytime they want. it will happen soon and people will blame it on nstr the protocol
Any of the clients, which users trust to serve them relay content, an censor anytime they want.