nobel is a family of small nostr libraries for plain HTML, each a lightweight take on something bigger and each named for an element. Every library is one dependency-free script under 5kb, and they work together through DOM events, the way the fixi project libraries do.
| library | size (raw/br) | miniature of | provides | |
|---|---|---|---|---|
| base (period 1, the base: relays and keys) | ||||
| ๐ง hydrogen | 2.8/1.2kb | a relay pool | relays, signing and the family's hooks | |
| ๐ helium | 3.8/1.6kb | @noble/secp256k1 | keys, Schnorr signing and verification | |
| alkali metal (things that charge and flow) | ||||
| ๐ lithium | 5.0/2.0kb | Negentropy | NIP-77 sync between argon and relays | |
| noble gas (the core: data and transport) | ||||
| ๐ neon | 3.9/1.8kb | nip19 | npub/nevent/naddr, linked content, times | |
| ๐ฆ argon | 2.5/1.0kb | a relay | IndexedDB cache, offline-first feeds | |
| ๐ฐ๏ธ xenon | 3.1/1.2kb | a nostr client | subscribe, render and publish in HTML | |
| ๐ชช radon | 3.1/1.3kb | a profile loader | names, pictures, NIP-05 | |
| ๐ป oganesson | 4.8/1.9kb | a chat app's live layer | presence, typing, cursors | |
| halogen (secrets and trust) | ||||
| ๐งช fluorine | 3.4/1.4kb | NIP-44 | encryption for helium's keys | |
| ๐ chlorine | 4.6/1.8kb | a NIP-46 client | remote signing behind a NIP-07 face | |
| โ๏ธ iodine | 3.9/1.6kb | an encrypted messenger | NIP-17 private messages | |
| transition metal (signed exchanges) | ||||
| ๐ฅ gold | 2.2/1.0kb | a NIP-42 client | relay AUTH for members-only relays | |
| โฟ๏ธ mercury | 3.5/1.5kb | rexi.js | NIP-98 and Blossom signed HTTP | |
| lanthanide (visual presets) | ||||
| ๐จ cerium | 2.8/0.9kb | a theme | the one stylesheet for the lanthanides | |
| ๐ช praseodymium | 3.2/1.3kb | nostr-name and nostr-picture | profile cards, chips, avatars, copy | |
| ๐ด europium | 2.7/1.1kb | nostr-note | note embeds | |
Plain <script> tags work in any order. Tick what you need above (what it needs is added) for one file from jsDelivr, in an order that also works with async:
Or download the files from the table, or take all of them in one file: nobel.js, nobel.min.js (40.8kb, 15.1kb brotli).
Add ?relay=wss://... to each: ๐ฐ feed, โ๏ธ private messages, ๐ป presence, typing, cursors, ๐ช profiles, ๐ด note embeds.
Public domain: the Unlicense.