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.

Reply to this note

Please Login to reply.

Discussion

🫡💜

🫡

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?

nostr:nevent1qqs0akvff0c838t6jcvnqm33yg3s60jl607zhq5an5nsx6r8ltxlpvgpzdmhxue69uhhwmm59e6hg7r09ehkuef0qgsdv8emcke7k3qqaldwv956tstu40ejg663gdsaayuuujs6pknw7jsrqsqqqqqp92zf25

I think he's just giving honest criticism of the tradeoffs and is probably annoyed that someone is claiming to understand all of the tradeoffs while writing off some deficiencies as inconsequential.

I use both clients, they keep each other in check.

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?

"I’ve never said a bad word about Damus or any other project" - bullshit

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 nostr:nprofile1qqsdv8emcke7k3qqaldwv956tstu40ejg663gdsaayuuujs6pknw7jspp4mhxue69uhkummn9ekx7mqprpmhxue69uhhqun9d45h2mfwwpexjmtpdshxuet5qyf8wumn8ghj7ur4wfcxcetsv9njuetnn9mexk 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. 🫂🫂🫂

Still waiting for you to reveal those tools for being done with Gleason's bridge bullshit that you said "we" already had as of last night. Were you lying and gaslighting and wasting time because your bullshit was being called out aggressively, or did "we" really have those tools all along?

hey man. I decided to open Primal and I saw this reply. Primal doesn't follow my mute list on Amethyst. so yes, the tools do work quite well, depending on the client. as long as I continue to use Amethyst, I'll continue to never see your notes. as I said yesterday, the tools we have do work quite well. I was wrong in implying that they work on all clients though. some implement mutes differently. sorry for the confusion there.

No confusion - you were bullshitting. I will continue pointing this out. Ban me or kill me over it you fucking glowie piece of shit

There may be a "nostr community" today because nostr is small. But nostr is not designed to be, nor will it stay a small cohesive community. Any number of communities that are at total odds with each will exist on nostr as it grows.

I think you either replied in the wrong place or misunderstood something, this doesn't seem to connect

That final sentence seems so insincere, it almost feels aggressive.

Be better.

🤮

Will knows I love him. We shared an Airbnb two months later after Prague. He knows the level of my sincerity and friendship.

I get it. But calling someone Dude & Bro seem like a slap in the face of sincerity when attempting to be sincere. IMHO.

It’s cool. We’re still Bro’s.

I heard different from people as close to Will as yourself. In fact, you know them just as well as I do.

I know. I'm just telling you what actually happened since I was involved in the conversations on both sides playing middle man trying to get everyone to play together.

Don't know which echo chamber you're a part of, but everything you said is pure imagination. See Derek's response about the booth. Funding? Me sitting on a grants board? LOL. Never have, nor have I ever applied for a grant.

Same echo chamber as the people who've told me this. You know, the circle of Bitcoin whales and/or OGs is very small. So you're not on the board, fair enough. Step down from your horse, you're not flying as high as you might think.

nostr:npub16c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9q586nvr see, eventually people start to see the details adding up. Misleading… that’s what you are. So was your marketing, so are your investors, so are the other projects they fund. Misleading

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

This is not right, keep a friendly attitude.

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.

Absolutely, I'd like Damus and Primal to work closely together to achieve our common goal of satisfying Nostr users. Thanks for sharing your experience!

Same

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?

“no different than twitter” is weak FUD that needs to be called out

So you think Primal will never ban me? What big difference do you see compared to Twitter/X?

Do you know what an nsec is?

A login criteria Primal has previously stolen from my clipboard when I wasn't trying to share it with the app?

He isn’t FUDing he jest told the truth

“No different than twitter”… this is garbage FUD

It's a slight exaggeration, not fud

Dear nostr:nprofile1qqsdv8emcke7k3qqaldwv956tstu40ejg663gdsaayuuujs6pknw7jspp4mhxue69uhkummn9ekx7mqprpmhxue69uhhqun9d45h2mfwwpexjmtpdshxuet5qyf8wumn8ghj7ur4wfcxcetsv9njuetnn9mexk about friendship I, on the other hand, would like to understand why you gave me the nip-05 isolabellart@primal.net and direct link https://primal.net/isolabellart 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 🫂🎨

Beautiful said and I reel the same. That’s why I got yearly at nostr:npub12vkcxr0luzwp8e673v29eqjhrr7p9vqq8asav85swaepclllj09sylpugg and struggling to find value at current current on why to upgrade with nostr:npub18m76awca3y37hkvuneavuw6pjj4525fw90necxmadrvjg0sdy6qsngq955 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.

It's very obvious in our network settings. Which Primal users' issues are you dealing with every day?

Can primal please show reactions. It must be frustrating for users to only see + and 🤙 while they receive many more.

This honestly is my biggest desire right now for Primal and the single thing that keeps me using Damus and Nostrudel if I'm on mobile or desktop.

It stinks because people are engaging (even if it is negligible) and I'd like to be able to return volley.

Primal including other reactions would also make nostr's network effect less biased in favor of centralization-minded people.

Right now, Primal's trending feeds are basically nostr's biggest content discovery system, and the trending system is biased to favor the opinions of people who use Primal instead of apps that support emoji reactions, since Primal doesn't count those reactions.

This meme I posted a little while ago is a good example. It currently has no engagement according to Primal, but nostrudel shows 2 reactions from 2 different npubs, which would generally be enough to get into the 1h Trending feed these days, possibly attracting more engagement. It's a subtle bias with a strong effect.

nostr:nevent1qvzqqqqqqypzqamkcvk5k8g730e2j6atadp6mxk7z4aaxc7cnwrlkclx79z4tzygqyvhwumn8ghj7urjv4kkjatd9ec8y6tdv9kzumn9wshszrnhwden5te0dehhxtnvdakz7qpqfm7lcwlmdmmpgfkpf2r3arth78n746vllc52dkq9zhndpv4mxflqt4wmd4

Important caveat: it's possible that if these reactions were counted, then 2 wouldn't be enough to get into Primal's trending feed anymore. But it often only takes 1 reaction, so it couldn't be too far off.

My DVMs still count them. They are available in primal. At least those who are not personalized.

Reasonable not to include personalized ones since some aren't actually meant to be positive

They consider things like your followers etc. It's simply not possible on primal as users don't communicate with the DVMs, but the caching service does.

I’m sorry miljan, but for non-tech people it’s not obvious from the network settings.

I may not be a developer, but I wish I had known this before subscribing to the premium

Would it be possible for Primal to integrate a fallback where the client can directly read from relays if the caching service goes down?

Yes, that's the plan.

That’s awesome, thanks!

What kind of issues do users raise that are caused by using both primal and damus or between users of each? cc nostr:npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5

Your passion is showing. You're critical because you want what's best for Nostr.

You could have just said your autism is showing but ill take it

Dude, it has taken me years to figure this out. 😂 I am overly anal about some things and I used to just think I'm just an asshole sometimes, but now I understand. And it's thanks to me being a father and witnessing this with my son first hand. Sometimes we just get hyper focused on minute details.

Still waiting for you to stop doubling down on gaslighting and time-wasting. Admit those are what you were doing here, not merely being "confused" - and if you want to apologize, offer substantial help with the same power you've abused here, or a relinquishing of that power, instead of empty words.

nostr:note1tmqd0zsehqw2cnw3vdmvrejj9p7am03xv6r68zmqv2cecl86dwwqke8gqe

👆this is how you respond.

The last sentence is perfection.

🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿

Can you write docs for the caching service?

Yes, we need better docs. We try to make it easy to stand these things up from our repo, but definitely hit us up if you need help. We've helped other teams stand them up in the past.

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 nostr:nprofile1qqsr9cvzwc652r4m83d86ykplrnm9dg5gwdvzzn8ameanlvut35wy3gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3qamnwvaz7tmwdaehgu3wwa5kuegpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhglzevy3 those comments were off

nostr:nevent1qqs0akvff0c838t6jcvnqm33yg3s60jl607zhq5an5nsx6r8ltxlpvgpz4mhxue69uhhwmm59esh57npd4hjumn9wshsygxkruautvltgsqwlkhxz6d9c972hueyddg5xcw7jwwwfgdqmfh0fgpsgqqqqqqsp89cr0

Post proof of FUD.

You know what else stores the whole network's data multiple times? Bitcoin.

The worst case scenario for Primal is that it becomes like the Bluesky BGS. But that is a hypothetical fear. And it's also a best case scenario? Because we would have a ton of users? But importantly, apps like Damus already exist, and a foundation is laid for a "free" side of Nostr that will never work perfectly but will serve a community who truly needs it, which will continue to grow. Both are inherently needed, and that is the true power of Nostr.

💪🏻🔥🫡

does the caching service use a user's relay list to build the cache?

I have started using primal, when not in wifi, since today because the cache will use less data than Amethyst.

That said, if it's not caching every relay every user uses its a pretty significant tradeoff and centralising force. it would be good if users could see which relays they read from are being cached by Primal.

How can you be tryi g for the best UX when you don't have amber login?