Join Nostr
2026-09-23 10:07:05 UTC

Rod on Nostr: The number one thing I wish I knew before building Nostr native apps on JS. Schnorr ...

The number one thing I wish I knew before building Nostr native apps on JS.

Schnorr signature verification is expensive on JS.

Having a global accumulator is smart, but if you use the default Nostr tools configuration of verifying every event on the JS thread as it arrives, you will kill your app performance and it will start to become non responsive.

Move schnorr signature verification to native code, not JS. Move hashing too while you're at it.

Verify only new events. Cache all existing events and skip verification on cache.

Yes, run a global accumulator but don't verify anything at all until called.

...

I delayed the new Shosho app release with zaps and the rest only because I could not get on top of performance. But, this cracked it. Fable built test harness, instrumentation, all of the above, and the result is ~40x faster performance.

Current test built is feeling good, finally!

TLDR: Nostr apps don't need to feel sluggish.