A personal Nostr mini-relay desktop app.
Your relay. Your network. Your machine.
nostrito runs a local WebSocket relay on your machine, stores your events in SQLite, builds a Web of Trust graph from your social connections, and syncs with the broader Nostr network — giving you full control over your data.
| Layer | Technology |
|---|---|
| Shell | Tauri 2 — Rust backend + web frontend in a native desktop app |
| Backend | Rust — relay server, WoT engine, sync engine, SQLite storage |
| Frontend | TypeScript — screen-based UI |
| Storage | SQLite via rusqlite |
| Protocol | nostr-sdk |
| Bundler | Vite |
| Screen | Description |
|---|---|
| Wizard | 3-step onboarding: welcome → npub input → confirmation |
| Dashboard | Overview: relay status, event count, WoT size, sync status |
| Feed | Browse stored events with filtering (kind, WoT-only) |
| Web of Trust | Trust graph visualization and stats |
| Storage | Database stats: size, event breakdown, time range |
| Settings | Configure relay port, WoT depth, sync interval, outbound relays |
| Module | Description |
|---|---|
relay/ |
NIP-01 compliant WebSocket relay server |
wot/ |
BFS-based Web of Trust engine (kind:3 crawling) |
sync/ |
Outbound sync engine (pull events from external relays) |
storage/ |
SQLite persistence layer (events, WoT, settings) |
# Install dependencies
npm install
# Run in development mode (starts Vite + Tauri)
npm run tauri dev
# Build for production
npm run tauri build
# Build macOS DMG installer
npm run tauri build -- --bundles dmg- Rust (stable)
- Node.js ≥ 18
- System dependencies for Tauri: see prerequisites
MIT