What is Nostr?
Fabian /
npub1n0s…lahe
2023-12-30 14:53:07

Fabian on Nostr: The Nostur Report: 2023 in review along with some of my favorite bookmarks and thank ...

The Nostur Report: 2023 in review
along with some of my favorite bookmarks and thank you’s.

On Jan 4th I clicked on this button and it would eventually become Nostur:


Few know it started because scrolling in Damus was buggy (back then):

#confession

Back in January I was trying to understand Damus source code, to see if something could be done about scrolling performance (its great now but was horrible back then). The first thing I was looking for to get a basic understanding was the database and I just couldn't find it. I thought my Swift/iOS skills were too far behind and had to learn modern Swift/iOS development first. So I started Nostur to learn.

Turns out, Damus didn't have a database...


After some progress I made my announcement and first post on nostr:
I’ve been working on a nostr client and will be opening it up for public beta soon at nostur.com


I had been quietly posting updates into an empty void for some time until I got a repost from aglkm (npub1hw0…59hh)
New iOS nostr client 👀

#[0]


then Jack mentioned Nostur once, but then never again 🥲
Nostur is much farther ahead than I expected. Has a ton of features. https://testflight.apple.com/join/TyrRNCXA

still grateful for indirectly supporting through OpenSats (npub10pe…n34f), thank you jack (npub1sg6…f63m)
Pablo said Nostur is fantastic and Nostur started to gain some traction

Nostur is fantastic


This was at the time when Nostur was still very buggy, so thanks for the encouragement PABLOF7z (npub1l2v…ajft)

back then some of the UX was so bad that if you die on Nostur you die in real life:
You cannot logout. Also if you die on Nostur you die on real life.


We saw Apple ban zaps and I wrote a Nostur mission
Enable the freedom to communicate.

Reach should be the result of how many people want or don’t want to listen to your message, there is no reason for a third party or algorithm to be required in this equation.

You should be in control of what you can or cannot see. Who you block should be up to you.

Ideally Nostur tries to reduce the need to require or trust any third party in order to communicate, unless there is no other way.

**BUT**

Nostur is built for iPhone, iPad and Mac users. In one way this is a limitation, (e.g., zap restrictions by Apple) but if we are using the Apple ecosystem already, we might as well use it to our advantage.

Nostur's target audience already trusts Apple with their data, their messages, photos, calendar, reminders, security cameras, etc.

We don’t need to store our data on random relays, and hope our contact list doesn’t get lost, or leak metadata to the public. We can store everything on our device, and sync using iCloud, it is reliable, and we already use it for far more important data anyway. Converting Apple users to Android or GrapheneOS is an uphill battle, I applaud people who take that route, but it’s not for Nostur users, we have people saying don't trust the media, don't use twitter, don't use iPhone, if we keep going, we end up sending smoke signals in a circle. As for interoperability, we can still publish or export using nostr native formats so you can use your data in another nostr app.

Nostur will publish to relays, but our data is on our device first, iCloud second, and third-party relays third. And you can still use a personal private relay for yourself if you want.

With this in mind, Nostur tries to let relays just be relays, not personal storage. Using relays for storage might end up centralising nostr, in the same way email, which used to be decentralised, is now mostly hosted by google and microsoft.

If you disagree with this mission or direction, Nostur's source is released under GPL-3.0 license, so feel free to fork and create a different version.

Ultimately, the goal of Nostur is not to get more people to use Nostur, but to get more people to use **nostr**.


Nellie (npub1xla…grrk) was the first to discover some sly roundabout way for zaps and share it
I added the lightning emoji in the settings and boom zaps are there.


People kept losing their follow list in other clients and The: Daniel ⚡️ (npub1aeh…4nwx) kept informing them over and over that they can restore with Nostur:
When I use Nostur, it checks to see if I’ve lost follows and prompts me to restore them. I’m not exactly sure how that works, but it’s saved my ass a few times already.

Whenever that happens I open Nostur and it magically restores my follow list. It’s the best feature the app has.


quentin (npub138s…x624) informed me about NIP-96, a spec for hosting media files and petri (npub1ust…n3mj) suggested to use WordPress for this. With some help from ChatGPT Nostr Media Uploads for WordPress was born:
I think I might do this, I did some wordpress dev in the past and know how things work but its too long ago for me to build anything useful, but I just asked ChatGPT some questions and it gave me all the right code snippets, got a minimal PoC already.

https://github.com/fabianfabian/nostr-media/releases/tag/0.7-beta

The spam problem got solved, with some caveats, which I wrote about in Nostr and the accidental Web of Trust:
I’m not sure if fiatjaf (npub180c…h6w6) had a Web of Trust in mind when designing nostr and its use of public contact lists but I think it’s very important to nostr’s future.

Technically there is no need to publish a follow list, if a nostr client wants to show a feed of follows it just needs a list of contacts, this list does not need to exist in public or on relays, but the fact that it does is what makes the Web of Trust work.

**Accidental**

The only other Web of Trust that I know of is PGP’s Web of Trust, it is only used by IT and security people, which is also the reason why it is unusable for most people. It leaves no room for error because security has the highest priority in those circles.

But on nostr the Web of Trust is a side effect of just following people. You press Follow a few times and you are accidentally building a Web of Trust without even knowing it. It might not be perfect, but that’s also why it works, because it is so simple, like nostr itself.

Attempts to “fix” or improve the Web of Trust should be made with that simplicity in mind. Creating new lists with granularity of people you really trust, partially trust, don’t trust at all etc are all great, but this will make it possible for it to end up like PGP. Nostr’s Web of Trust works precisely because people don’t have to think about it.

There is also this idea that likes, reposts or any signal that can be made by users are useless because they can be gamed, but they can only be gamed if you don’t use a Web of Trust.

**Web of Trust fixes almost everything**

note1a8n…cev8

Web of Trust fixes spam, bots, abuse of trending/hot algorithms

Zaps were supposed to fix the problem of gaming/abusing likes or reposts, but Web of Trust fixes it better. Zaps are useful for sending value, so let’s use it to send actual value. 1 sat zaps are not much different from Like-spam and considering the technical overhead required for zaps and possibility for timeouts and failures it’s actually worse.

So, Web of Trust Makes Likes Great Again, and with that you can make algorithms that are useful to the individual instead of the advertisers or platforms.

![image]( )
*Example of a most basic Web of Trust filter (follows + follows of follows)*

Nostur uses follows + follows of follows to filter spam and bots, and it uses likes and reposts from follows uniquely ranked to create Hot and Gallery feeds.

Another example is Doug Hoyte (npub1yxp…qud4)‘s https://oddbean.com, a community website where the content of the community is based on the administrator’s follows, the algorithm is incredibly simple and transparent, and it wouldn’t be possible if nostr did not have an accidental Web of Trust:
![image]( )

**Challenges**

Now there are still some challenges to be solved, new users being onboarded won’t have a Web of Trust yet, maybe we could give them training wheels, a preloaded Web of Trust until they followed enough people to use their own.

Also, new users don’t exist in anyone else’s Web of Trust yet, so they won’t be seen until someone follows them. This is not a good new user experience.

You also might miss someone’s post because they are not in your Web of Trust yet.

These are all challenges and I will keep exploring solutions for these.


And I haven’t posted about this one much yet but it exists: a Swift package to start building your own nostr client:
https://github.com/nostur-com/nostr-essentials

Finally special thanks to corndalorian (npub1lrn…qnw5), 🦖 (npub1cda…czgz), and petri (npub1ust…n3mj) for pushing Nostur to the limits, finding bugs, suggesting improvements and showing demos like:
I’m really loving how nostr highlights are implemented on Habla.news and also how they’re displayed in Nostur, so I made a quick 60-second video to show what they look like.



I know I missed some, I have many bookmarks and I also lost a few migrating to a new system.

I’m not much of a marketeer so I rely on all of you to describe your experiences, thank you all!

BTW: if some of the embedded posts are not loading, consider adding an archival relay to your relay settings: wss://relay.nostr.band and wss://a.nos.lol should get you all the posts you need.
Author Public Key
npub1n0sturny6w9zn2wwexju3m6asu7zh7jnv2jt2kx6tlmfhs7thq0qnflahe