Take the NINO quiz! Here's how flotilla fares:

- [ ] There's no NIP for your data format

- [ ] There's a NIP, but no one knows about it

- [ ] Your NIP imposes an incompatible/centralized/legacy web paradigm onto nostr

- [x] Your NIP relies on trusted third parties

- [ ] There's only one implementation of your NIP

- [ ] Your core value proposition doesn't depend on relays, events, or nostr identities

- [x] One or more relay urls are hard-coded into the source code

- [ ] Your app depends on a specific relay implementation to work

- [ ] You don't validate event signatures

- [ ] You don't publish events to relays you don't control

- [ ] You don't read events from relays you don't control

- [ ] You use legacy web services to solve problems, rather than nostr-native solutions

- [ ] You use nostr-native solutions, but you've hardcoded their pubkeys or URLs into your app

- [x] You don't use NIP 89 to discover clients and services

- [ ] You haven't published a NIP 89 listing for your app

- [ ] You don't leverage your users' web of trust for filtering out spam

- [ ] You don't respect your users' mute lists

- [ ] You try to "own" your users' data

That's a 3 on the NINO scale. The "trusted third parties" thing is debatable; in this case I'm counting relay operators, most of which are nip29 multi-tenant relays and relay.tools currently, but ideally that will improve as people run their own infrastructure.

How does your app fare?

nostr:nevent1qvzqqqr4gupzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcpr3mhxue69uhksmmyd33x7epwvdhhyctrd3jjuar0dak8xtcqyqzeszjv7rh8fflpeua9q644a32usvwd0cu7cze9lxy4grjy2y7rwtcw9gv

Reply to this note

Please Login to reply.

Discussion

🤣 I love this post

I hate the fact that in gossip:

[x] One or more relay urls are hard-coded into the source code

But I will at least be open about this fact and explain why.

1) Several relays require an Origin header or they won't work with gossip. Gossip isn't a web application, so it fakes this header but only for relays that are known to have this requirement. Perhaps it should instead always write this header.

2) We suggest relays to new people. For every major release I do extensive testing of popular and open relays and we hardcode the top 20 based on a somewhat complex scoring algorithm that was not gamed. Often relays in that list I have never heard of, but they go in there based on the rules.

There's also the bootstrapping problem, which is unavoidable

NINO quiz applied to the Gossip client

- [ ] There's no NIP for your data format

- [ ] There's a NIP, but no one knows about it

- [ ] Your NIP imposes an incompatible/centralized/legacy web paradigm onto nostr

- [ ] Your NIP relies on trusted third parties

- [ ] There's only one implementation of your NIP

- [ ] Your core value proposition doesn't depend on relays, events, or nostr identities

- [x] One or more relay urls are hard-coded into the source code

- [ ] Your app depends on a specific relay implementation to work

- [ ] You don't validate event signatures

- [ ] You don't publish events to relays you don't control

- [ ] You don't read events from relays you don't control

- [ ] You use legacy web services to solve problems, rather than nostr-native solutions

- [ ] You use nostr-native solutions, but you've hardcoded their pubkeys or URLs into your app

- [ ] You don't use NIP 89 to discover clients and services

- [x] You haven't published a NIP 89 listing for your app

- [ ] You don't leverage your users' web of trust for filtering out spam

- [ ] You don't respect your users' mute lists

- [ ] You try to "own" your users' data

Explanations:

* Gossip includes 20 relays to get people started. I tried to be as fair as possible

in choosing these relays with an algorithm. Every major release I run the algorithm

again and the top 20 go in.

* For a few relays that require the Origin header, we send it. Those are hard coded.

* Gossip doesn't publish a 31990 (NIP-89) because although gossip handles lots of event

kinds, there is no way to specify how to launch a local application in such a way

that other applications could do it automatically.

> there is no way to specify how to launch a local application in such a way that other applications could do it automatically.

🤔 still would be worth it just to get recommendations and promote the software

I'm just now getting into treating handlers like people, with profiles and relay lists and ability to follow them etc. etc. because I wanted to use 5300 DVMs.

I'm so far behind on this part of nostr.

nostrapp.link makes it pretty easy

Ok I have posted a 31990 for gossip under the gossip account pubkey. Maybe now it will show up automatically in various lists and apps. Then i will have more people asking me questions. 🤔

I have now published a NIP 89 discovery event, so I'm down to just 1 NINO point.

Mmm i cant seem to get flotilla to work seem to always get a permission error on my relay when sending messages in a channel...

Just sent you a DM

👀

Hardcoding is pretty good if it's just an initial configuration or a fallback.

Getting relay suggestions from the person writing your app isn't worse than getting suggestions from friends and whatnot.

I agree, but everyone's gotta have at least one NINO point