- Published on
Applesauce
Applesauce is a TypeScript SDK for building nostr web clients, maintained by hzrd149. It started as the cleaned-up internals of noStrudel and has grown into a set of small, independent packages that other client developers can pick and choose from. The packages cover relay connections, timeline management, signing, and the building blocks for common nostr features like contacts, mutes, bookmarks, NIP-17 direct messages, NIP-60 cashu wallets, and more.
The biggest achievement has been building out the applesauce SDK to be the core of the app. This has allowed me to build and test features in isolation and then integrate them back into the app when I know they are working.
—Hzrd149
The SDK pairs with React via a small set of hooks for subscribing to observable event streams, but the core packages are framework-agnostic and run anywhere TypeScript runs. Recent work has added negentropy-based syncing across multiple relays, event factories for building common event types, encrypted content caching for NIP-17 DMs, and an MCP server so AI coding agents can work with applesauce primitives directly.
Why fund it?
Every new nostr client used to reimplement the same basics from scratch: relay management, signing, contact lists, mute lists, NIP-17 wrappers, outbox-model relay selection. Applesauce moves that shared work into one set of packages so client developers can spend their time on the parts that make their app different. noStrudel is the largest public consumer, and the goal is for other client and tool authors to reuse the same primitives instead of rolling their own.
OpenSats first supported hzrd149 in the December 2023 wave of nostr grants for his work on noStrudel. He later received a long-term support grant, which is what funds the ongoing applesauce work alongside Blossom, nsite, and noStrudel itself.
What's next?
V6 of applesauce is in progress, with request completion conditions that cut common request times from over 30 seconds down to under 6 seconds when an offline relay is in the set, plus more event factories and bug fixes. Alongside that, hzrd149 is helping build marmot-ts, a TypeScript implementation of Messaging Layer Security over nostr, with applesauce providing the underlying event handling.
For a detailed look at recent progress, see the Advancements in Nostr Clients impact report.
Further Reading
- OpenSats is funding three more open-source projects advancing the nostr ecosystem.
- Published on
An impact report from the front-lines of nostr client development.
