Docs
Last updated: 2026-07-14
What is Nostrbook
Posts are NIP-23 long-form events (kind 30023) on public Nostr relays. Nostrbook mirrors them into an edge database and renders them at handle.nostrbook.net.
Signing in
You need a NIP-07 browser extension such as Alby or nos2x. You sign a one-time challenge; your keys never leave the extension.
Claiming a handle
Lowercase letters, digits, and hyphens, 2–31 characters; it must start and end with a letter or digit, and some names are reserved. One handle per key, plus a quick human check.
Writing
The built-in editor is markdown with a formatting toolbar and a live server preview; publish with Sign & publish via NIP-07. Or publish long-form from any Nostr client — the blog syncs from your relays within about 15 minutes.
Your blog
Your blog lives at handle.nostrbook.net, with /rss.xml, /atom.xml, and /sitemap.xml.
NIP-05
You are handle@nostrbook.net.
Markdown support
Headings, bold/italic/strikethrough, ==highlight==, links, images by URL, code blocks with syntax highlighting, tables, footnotes, and task lists.
Theme CSS
Set custom CSS in dashboard settings — a sanitized CSS subset applied after the base stylesheet. Stable hooks: .blog-header, .blog-name, .post-list, .post-item, .post-date, .post-content. For example:
a { color: #b04a2f; }
body { font-family: Georgia, serif; }
.blog-name { color: #b04a2f; }Deleting posts
NIP-09 deletes are honored by the mirror. Other relays may retain copies.
Relays
Defaults: relay.damus.io, nos.lol, and relay.nostr.band. Set your own in the dashboard.
Unclaimed blogs
Any npub renders read-only at nostrbook.net/npub1….
Source & license
AGPL-3.0 — github.com/sovITxyz/nostrbook. Run your own if you like.