Emanate - One Pager
Emanate
Local-first thought versioning for Obsidian.
Every snapshot becomes a cryptographically signed event in a private local relay, with optional publication to the Nostr network for durable authorship and recovery.
What it does
Emanate turns your Obsidian notes into a signed, append-only history of thought. Draft locally, inspect every revision, and publish selected snapshots to Nostr relays — without giving up control of your vault.
Architecture
Four layers, from local to global:
| Layer | Role |
|---|---|
| Vault | Markdown files, attachments, wikilinks, embeds — Obsidian as the editing surface |
| Identity | Cryptographic signatures, authorship, provenance — every event tied to a Nostr keypair |
| Ledger | Immutable revision events in local SQLite — append-only, chain-linked history |
| Distribution | Selective sync to Nostr relays — publish chosen snapshots for durable authorship and recovery |
How it works
- Auto-snapshot — Every edit is debounced and saved as a signed Nostr event in a local SQLite database. No cloud required.
- Chain linking — Each snapshot tags the previous version’s event ID, creating a verifiable revision chain per note.
- Time-travel UI — A sidebar panel lets you scrub through history, preview any revision, diff against current or previous versions, and restore.
- Publish when ready — Select any snapshot and broadcast it to your configured Nostr relays. Published snapshots are marked with a broadcast badge.
- Disaster recovery — If you lose your vault, reconstruct it from any relay using your public key.
Event kinds
- Kind 1 — Short notes. Default. Every snapshot is a distinct immutable event — relays preserve the full revision chain.
- Kind 30023 — NIP-23 long-form articles with title, summary, slug, and
published_at. Parameterized replaceable — relays keep only the latest version per slug. Use when you want “canonical article” behavior instead of append-only history.
Resolved by: command override → frontmatter nostr.kind → plugin default (Kind 1).
Key properties
- Offline-first — Works entirely without network. Publishing is opt-in.
- Vault-sovereign — Your files stay in Obsidian. Nothing is required to leave your machine.
- Cryptographic proof — Every snapshot is signed. You can prove when you had an idea.
- Standard format — Events are valid Nostr JSON. Any compliant client can read them.
- Fork detection — Concurrent edits on multiple devices produce visible chain forks you can inspect and resolve.
Status
Implemented: auto-snapshot, chain linking, history view, diffing, restore, publish to relays, fork detection
Not yet: wikilink-to-event tagging, image/media handling (Blossom/BUD), vault reconstruction from relay, event pruning.
Emanate is an Obsidian plugin. MIT license.