Primal clients read from the caching service and write directly to the user’s relays. We chose a set of tradeoffs based on what we are trying to accomplish: best UX possible. We’ve been very transparent about it from Day 1. See my blog post from March 13, 2023 - the day we launched Primal. I still think that caching services are not only great for UX, but also a legitimate way to help scale Nostr once we hit millions of users. They could even improve censorship resistance, since anyone can stand them up and create more copies of Nostr events. Having said all that, the Primal stack is evolving and becoming more capable on the client as well. One can imagine peer-to-peer transfers between clients that have client-side databases, like Primal for Android. I think Nostr will have it all: relays, indexers, caching services, client p2p transfers. It will be very hard to stop. Claiming that there is only one way to properly build Nostr clients and that everyone must choose exactly the same set of tradeoffs is silly. For example, gossip/outbox purists might take issue with how Damus works. Everything we build at Primal is open sourced under the most permissive MIT license. I believe we offer the only open source indexer for Nostr (someone please correct me if I’m wrong). Anyone can stand up and run their own caching instance. Other projects have done so in the past. Primal users hold their keys and can move to another client at any time if they don’t like how our product evolves. On a personal note Will, you constantly fud Primal. You tried to cancel us before, joining semisol’s cEnSoRsHiP nonsense campaign. Your latest initiative - trying to impose rules on what can be called a Nostr client - is also an attempt at cancelling. I don’t know what to make of it because you are always very friendly in person. We spent a considerable amount of time together, and you never raised these issues with me face-to-face. Why not? On the contrary, you always seem to have kind words for Primal when we talk. I’ve never said a bad word about Damus or any other project. I want to be on good terms with all Nostr builders, but you are making it hard with posts like this.

Replies (22)

This is interesting conversation to watch from the sidelines. We see bitcoin services that only prioritize user experience being attacked by stupid regulations, like Travel Rule, or kicked out of specific countries (WoS...). Primal's architecture is prone to similar attacks. More so compared to "smart client, dumb server" architecture like what Amethyst does. When the service becomes too big (like Coinbase), it will be kneeled on by all governments around the planet. If Primal gets big, the same will happen. What will Primal do then?
miljan's avatar miljan
Primal clients read from the caching service and write directly to the user’s relays. We chose a set of tradeoffs based on what we are trying to accomplish: best UX possible. We’ve been very transparent about it from Day 1. See my blog post from March 13, 2023 - the day we launched Primal. I still think that caching services are not only great for UX, but also a legitimate way to help scale Nostr once we hit millions of users. They could even improve censorship resistance, since anyone can stand them up and create more copies of Nostr events. Having said all that, the Primal stack is evolving and becoming more capable on the client as well. One can imagine peer-to-peer transfers between clients that have client-side databases, like Primal for Android. I think Nostr will have it all: relays, indexers, caching services, client p2p transfers. It will be very hard to stop. Claiming that there is only one way to properly build Nostr clients and that everyone must choose exactly the same set of tradeoffs is silly. For example, gossip/outbox purists might take issue with how Damus works. Everything we build at Primal is open sourced under the most permissive MIT license. I believe we offer the only open source indexer for Nostr (someone please correct me if I’m wrong). Anyone can stand up and run their own caching instance. Other projects have done so in the past. Primal users hold their keys and can move to another client at any time if they don’t like how our product evolves. On a personal note Will, you constantly fud Primal. You tried to cancel us before, joining semisol’s cEnSoRsHiP nonsense campaign. Your latest initiative - trying to impose rules on what can be called a Nostr client - is also an attempt at cancelling. I don’t know what to make of it because you are always very friendly in person. We spent a considerable amount of time together, and you never raised these issues with me face-to-face. Why not? On the contrary, you always seem to have kind words for Primal when we talk. I’ve never said a bad word about Damus or any other project. I want to be on good terms with all Nostr builders, but you are making it hard with posts like this.
View quoted note →
Since you've chosen to call out Will. Tell us why he was booted from the main stage in Prague while Primal literally took over the stage and booth? Or, tell us why funding was held back by a certain platform (where you apparently have a seat on the nostr grants board) felt that it was time to support Damus only AFTER the human rights foundation stood up? Or, should we talk about comments dropped about Will during dinner events in Prague?
If the primal client isnt ALSO writing to the caching relays this will continually lead to people's replaceables (follows, lists, etc) inadvertently wiping out what the user wants it to be. Your caching service is NOT UPDATING at an appropriate pace for this flow model image
For the record I use both clients and will continue to use both. I was a Damus maxi at heart but over time the features became stale. All I can do on Damus is scroll notes and zap. It did absolutely nothing for content discovery. I was then intrigued about primal after hearing all the great features the team was building on Odell’s pod. Once I tried primal the user experience was much better. I paid for legendary status to help fund development and enjoy any new features the team comes up with in the future. But the beautiful thing about switching clients is I was able to recover lost DMs that were no longer showing up in Damus. Plus all of my notes and contacts were intact. Switching clients doesn’t mean the other is useless. I am sure once the Damus team starts to focus on discovery I may switch back and contribute funds to that team (which I have I am team purple!) I say this because I am thankful for the development of both platforms and discussions like these I hope will end well for the user with more robust features and the overall preservation of freedom.
Accusing Will of fud and cancellation attempts looks weak. Seems like it makes more sense to just call Primal a nostr mirror instead of a nostr client. If what you're doing is better than what other clients are doing, what's wrong with recognizing it with different wording?
Dear @miljan about friendship I, on the other hand, would like to understand why you gave me the nip-05 isolabellart@primal.net and direct link and now you tell me that being an early adopter I will get it for free only until June 2025 and then I will have to pay. In my house gifts are not paid for. Have a nice day 🫂🎨
Will and Damus weren't booted from the stage. In fact, from the very beginning talks, when we were working on the program, we had Will on the panel. Will decided he did not want to participate on his own. He felt that people were buying main stage talks. He didn't like how the packaging of booth and stage content were merged together. I was actually saddened by this. I had been speaking to Vanessa and trying to get him to come and have him participate in all of it. On a side note, I specifically remember one video call where @miljan said "c'mon, it's Will, if course we have to have him in stage for this panel." Sadly, I just couldn't make everyone happy. I tried my hardest. As for comments about Damus or Will at dinner, that wasn't a dinner I was at or heard. Will is my dude and will always be my dude. 🫂🫂🫂
Beautiful said and I reel the same. That’s why I got yearly at @primal and struggling to find value at current current on why to upgrade with @Damus though I do use Damus more because of the NWC is smooth for my connecting with my node. Plus the UX on Damus looks and feels better. Primal is better in most other aspects I would say so I use both. Damus mostly on phone and primal on desktop because notedeck just isn’t Giving right now. - Yogi
Options are good. Open source is good. Vigilance is good. Criticism is good. FUD’ing is beta coded drama maxxing that demonstrates a lack of emotional control
If it makes you feel any better i would levy the same criticism against any other client that has a centralized relay that it reads from. Maybe just make this more obvious to your users so I don’t have to continually troubleshoot their issues every day.
Agreed with all of this Neither user accounts nor user data are being siloed by Primal Caching relays can be useful beyond performance and spam filtering e.g. Community apps Child-safe(r) apps The point is that nostr users have choices As long as there are choices there's no problem And Primal conforms to the Nostr protocol as far as what a client is Sorry @jb55 those comments were off
miljan's avatar miljan
Primal clients read from the caching service and write directly to the user’s relays. We chose a set of tradeoffs based on what we are trying to accomplish: best UX possible. We’ve been very transparent about it from Day 1. See my blog post from March 13, 2023 - the day we launched Primal. I still think that caching services are not only great for UX, but also a legitimate way to help scale Nostr once we hit millions of users. They could even improve censorship resistance, since anyone can stand them up and create more copies of Nostr events. Having said all that, the Primal stack is evolving and becoming more capable on the client as well. One can imagine peer-to-peer transfers between clients that have client-side databases, like Primal for Android. I think Nostr will have it all: relays, indexers, caching services, client p2p transfers. It will be very hard to stop. Claiming that there is only one way to properly build Nostr clients and that everyone must choose exactly the same set of tradeoffs is silly. For example, gossip/outbox purists might take issue with how Damus works. Everything we build at Primal is open sourced under the most permissive MIT license. I believe we offer the only open source indexer for Nostr (someone please correct me if I’m wrong). Anyone can stand up and run their own caching instance. Other projects have done so in the past. Primal users hold their keys and can move to another client at any time if they don’t like how our product evolves. On a personal note Will, you constantly fud Primal. You tried to cancel us before, joining semisol’s cEnSoRsHiP nonsense campaign. Your latest initiative - trying to impose rules on what can be called a Nostr client - is also an attempt at cancelling. I don’t know what to make of it because you are always very friendly in person. We spent a considerable amount of time together, and you never raised these issues with me face-to-face. Why not? On the contrary, you always seem to have kind words for Primal when we talk. I’ve never said a bad word about Damus or any other project. I want to be on good terms with all Nostr builders, but you are making it hard with posts like this.
View quoted note →