Hi #Nostr!

I'm a developer working with Go and Swift, and today I'm excited to announce the launch of my first Nostr client โ€” Nopu.

Nopu is a free and open-source push notification service built on Nostr. Think of it as ntfy.sh for Nostr โ€” you can define custom filters to receive flexible, personalized push notifications from any event source on the nostr network.

In the future you can also self-host your own push service and config your client, giving you full control over how and where notifications are delivered.

The project is now open source:

* Backend (Go): https://github.com/sanah9/nopu

* iOS Client (Swift): https://github.com/sanah9/nopu-ios

TestFlight is also available for anyone who'd like to try it out:

https://testflight.apple.com/join/6teuaTGG

Feedback and contributions are very welcome!

#Grownostr

Reply to this note

Please Login to reply.

Discussion

ๅˆไธ€ๅŽไบบๅผ€ๅ‘ไบบๅ‘˜๏ผŸ

Hey, welcome to nostr! I've been working on push notifications for the past few months as well, which present some interesting challenges on nostr. I took a quick look at nopu, and just wanted to offer some design critiques:

- How are you planning to grant notification server access to auth-gated relays? The way I see it there are three options: 1. share user keys or bunker access (dangerous), 2. extend the protocol so that relays can optionally support pushing events to another server (not likely to get adopted), and 3. grant access to push servers using invite codes: https://github.com/nostr-protocol/nips/pull/1079. The latter is the approach I'm using, which only works if relays support that PR, but gracefully degrades.

- Using `h` tags is an odd choice, NIP 29 groups bring a whole load of semantics along with them. I would use some other tag, maybe even an `a` tag referring to an existing subscription.

- I like that users can self-host their notification server, but it seems like a pain for users to get their own FCM/APN keys.

You can find my work on this at https://github.com/coracle-social/anchor, which takes a different approach in that it's explicitly coupled to a particular application (in my case, flotilla.social). I've put together a NIP for this over at https://github.com/nostr-protocol/nips/pull/1796 which a few other devs have left feedback for. Also, you might take a look at Pokey by nostr:nprofile1qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcprdmhxue69uhkummnw3ezuumpw3ehgunpd35kztnrdakj7qghwaehxw309aex2mrp0yhrq7rrdpshgtnrdakj7qgkwaehxw309amk7apwdehhxarj9ecxzun50yhsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qqsxg45ph8gx0vdrvtzta6xal7v86frx6jvstsnvhrlvtehmwwh4epqr5y3c4, which is doing something very similar to nopu.

Nice project! Let me know if you want to discuss ideas or need some feedback ๐Ÿค™

https://github.com/KoalaSat/pokey

Thanks a lot! Really appreciate it