Appearance
Document Store
The data layer of the Wish stack.
![]()
The hard parts of building modern apps, solved at the layer below your code:
- Local-first — apps work offline; sync recovers state when you reconnect
- Multi-device sync — same user on phone, laptop, and tablet just works
- Identity without Auth0 — Ed25519 keys per user, no password resets, no JWT plumbing
- Permissions that travel with the data — write rules live on every document, enforced by any peer
- Every edit signed — full provenance, audit log for free
- End-to-end encrypted transport — wish-core handles peer encryption
- Sync without a central database — peers exchange documents directly
- No backend to run — ship the app, the user runs it on their device
And the part most P2P stacks make you give up:
- The database you already use — Postgres, MongoDB, SQLite, SurrealDB. Reads stay in your database's native query language.
The engine is Rust — the same store on every platform and language lane (Node today via the document-store package; the Rust crate directly in Tauri apps).
Get Started
- Getting Started — architecture overview, quick example
- Rendering — render handlers: your database, your reads
- API Reference — store API, write rules, share policies