Hmm… that’s such a good question. I think from a dev perspective just having more libraries built out on different languages is going to be a big one. I was writing some Nostr code the other day in Python just to understand how everything works at a lower level… and it was difficult to get things working initially because the one library I found was in kinda a weird unmaintained state.

From a user perspective… I feel like the public private key idea is going to be a bit tricky to get my parents and siblings to understand. That being said.. once they do… I think they’d freaking love it.

what about you what do you think is still lacking? How can it be improved from a user perspective and otherwise?

Reply to this note

Please Login to reply.

Discussion

there is no complete onboarding resource for devs. Nostr protocol github does not contain the lessons and context of the thousands of nostr dev hours.

cc nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 see python feedback package.

On the user side, lmk if you have ideas. My gut tells me no one wants to do homework beforehand about scary topics like public private keypair cryptography. Things should “just work”, and learning should happen by doing.

I think the no complete onboarding resource for devs is a big one. I think there should be more links at the very least to the community maintained libraries for each language. I think the NIPs are simple enough… but because we are using somewhat esoteric key generation… that definitely adds some cognitive overhead. It’d be cool to have a basic starter project in a few different languages. Here’s the one I was working on over the weekend that helped me understand the implementation details a lot more: https://github.com/alexwhb/nostr-client-python-learning

I also agree with your perspective on the user side. I think not only that… but average people are still writing their password as “Password”… so to have them managing a public private key pair seems tricky. Maybe if we can figure out a way for that key pair to auto sync with Apple Passwords or Google Passwords or whatever for the people who don’t use password managers might help. Or maybe create some sort of way of translating a password into a public private key pair so the known UX can still happen. Just some thoughts.

Dope ideas

nostr:npub1c878wu04lfqcl5avfy3p5x83ndpvedaxv0dg7pxthakq3jqdyzcs2n8avm was just complaining to me about the bad state of Python libraries today. I think it's just because Python is not a great choice for making Nostr clients because of all the asynchronicity required it got left aside (same as nostr:npub10000003zmk89narqpczy4ff6rnuht2wu05na7kpnh3mak7z2tqzsv8vwqk's and nostr:npub13f5edp5przy3sm0nnrrj205vgstuuul7s98datn7ekqahh54x6kqufgvmt's Ruby).

The thing I wanted to do with Python, though, if I could, was to work on this thing: nostr:nevent1qqs8qq6gyswd55tkvqqeyyxkar6c38654kvfvvh0nxv0fcnznk9064sppemhxue69uhkummn9ekx7mp0qyghwumn8ghj7mn0wd68ytnhd9hx2tcpz3mhxue69uhkummnw3ezu7psvchx7un89ucnzyc3

I'm glad you didn't mention #PHP ;)

Hahaha Never! I honestly haven’t used it, but I’m sure it’s awesome. 🤩 PHP has become an awesome language though in recent years, so if I do some full stack web dev I’d consider using it.

I have this problem too... I wrote something in python using pynostr and it is missing quite a bit of functionality and is not maintained. I figured, I don't need that functionality so I continued on, but now I'm thinking I don't want to rely on something unmaintained, so I am going to rewrite some of it to use this https://pypi.org/project/nostr-sdk/

If you want to have a look at it, tell me what you think. I need to get back to that project soon and get it out the door as soon as I can.

Oh ya I actually took a quick glance at that yesterday. If I was writing something I wanted to be production ready… I’d totally go for that. I do feel a bit apprehensive using python libraries that are non native to python when trying to learn something new, however. Simply because it’s harder to debug and understand all the little details, that being said I think this is probably the right way to go if you’re building anything other people will use. I also really love rust (not that I’m good at it).

Yeah, that's why I didn't go with it initially, I wanted a library written in Python for a python project.

Totally know the feeling. Makes it a lot harder to diagnose issues when they are inside binaries that you don’t really have visibility into.