This is fixed now with v0.46.1
Ill push out the version to zapstore next
View quoted note →
hzrd149
_@hzrd149.com
npub1ye5p...knpr
JavaScript developer working on some nostr stuff
- noStrudel https://nostrudel.ninja
- Blossom https://github.com/hzrd149/blossom
- Applesauce https://hzrd149.github.io/applesauce
Sorry to everyone who uses noStrudel. I broke the latest version... There is an issue that only shows up in the production build, I'll try to have a fix out tomorrow
PSA to all JavaScript developers. Be very carefully using top level await in your modules. Things might work in dev mode but when the app is bundled it can create promises that never resolve due to circular module imports. Even using async import()
I have this saying I like to repeat to myself a lot when it comes to software development. "don't lie to your users"
It sounds obvious but so many developers don't get it, or at least don't see the whole picture and there is a moment in this podcast that illustrates my point perfectly.
At 42:00 Chris looks down at the recording software and it says "connection unstable". he gets upset, and starts asking why and how the connection could be unstable but because the software cant talk back it never answers his question... Obviously we don't want software to talk (yet) but my point is that it notified him that it detected an issue but refused (lied) to tell him the reason why, or how it detected the issue.
Was the connection unstable because it lost 50% of packets? is the latency over 5 seconds? is the recording software lagging due to CPU?
The software *knows* the issue, otherwise it couldn't have detected it. but the developer decided to lie to the user. probably because they thought the user wouldn't understand. but this just leaves the user in the dark and easily frustrated which leads to them quickly loosing confidence in your software.
Don't lie to your users, if there is an issue tell them about it and what it is. even if they don't understand at least you will still have a user.
Video link with time: https://blossom.primal.net/979bf277264f6c42a99be43a33ade167e2711f103247ee243653f1ebd3dcec8d.mp4#t=2520
View quoted note →
P.S. @Chris Liss might be better to use OBS to record long podcast (vlogs) then some internet connected thing. but idk, I don't vlog :)
#asknostr does anyone know of a good NIP-84 highlights app or browser extension that works on mobile?
I read a lot of articles on my phone and I'd like to post those to nostr
Released applesauce v3. there were some breaking changes and a lot of exports were renamed
There is also a bunch of new features. Ill try to write a release article about them, but there is a short list:
- New applesauce-wallet-connect package for client and provider NIP-47
- NostrConnectProvider class for the server side of NIP-46 signers
- Added "reconnect" option to publish, request, and subscription methods on relays
- Support for NIP-53 live streams
- Support for NIP-52 calendar events
- Support for NIP-84 highlights
- Support for NIP-88 polls
- Basic NIP-61 nutzap support
Also lots more vibe-coded examples to play with. my favorite is the NWC service example that lets you create a fake wallet for testing :)
Migration Guide: v2 to v3 | AppleSauce
Functional Nostr SDK for building reactive web apps
Applesauce Examples
@Alby where is the documentation for the "nostr+walletauth+alby://" URIs your using in the bitcoin-connect package to make it so user can scan a QR with alby go and connect the wallet?
Id like to support it in my applesauce library and I want to make sure I'm going off the documentation and not guessing
The only thing https://phoenix.acinq.co/ is missing is support for NWC so I can connect it to my nostr apps. besides that its a perfect advanced and beginner friendly mobile lightning wallet.
Its the only wallet I've found that somehow seems faster then my personal LN node and I love how you can enter multiple LN addresses or bolt12s for each contact (every bitcoiner I know uses 4+ wallets)
Been distracted from Nostr for the past few days, but I think I've vibed coded the best language learning app. At least for my friend group. I'll publish the repo once I sanitize the code (remove hard coded api keys)
The future of vibe coding is bright if it can be used to create these one-off apps for very specific uses
This is where blossom and bittorrent really shine, on the edges. And half the Bitcoiners I know run Umbrels or start9s...
View quoted note →
I have never had so much fun building a library then I have had building applesauce-relay. At its core it's 600 lines of RxJS observable code, which is almost completely stateless and very nuanced.
I've had to write a lot of tests to ensure it behaves correctly. But that makes me very confident it's the best JavaScript Nostr library there is.
@lassdas any idea how this zap got created? I didn't receive it on my node and the zap event itself is published by a pubkey without metadata @npub15vam...lzh6
I put the invoice in to and it seems to be pointing to the lightning node myNode which I don't think I've ever used for zaps
View quoted note →
Decoder for Lightning Payment Requests
A tool for decoding lightning network payment requests as defined in BOLT #11.
Node: mynodebtc.com [myNode] | 1ML - Lightning Network Search and Analysis Engine - Bitcoin mainnet
Lightning Network Search and Analysis Engine
Ever wanted to create a temporary NIP-46 bunker using your NIP-07 extension?... well in case you did I added an applesauce example that lets you create NIP-46 bunkers (remote signers) for testing.
also applesauce V3 will have a class for easily creating and handling the server (bunker) side of remote signers 😁
Example:
Documentation:
https://hzrd149.github.io/applesauce/signers/bunker-provider.html
Applesauce Examples