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.