Skip to content

nostrito/nostrito-app

Repository files navigation

nostrito

nostrito-app

A personal Nostr mini-relay desktop app.
Your relay. Your network. Your machine.

Website · Organization


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.

Architecture

nostrito architecture

Stack

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

Frontend Screens

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

Backend Modules

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)

Development

# 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

Prerequisites

License

MIT

About

Your personal Nostr relay. Lives when you live.

Resources

Stars

Watchers

Forks

Contributors