Self-hosted, Markdown-native knowledge system. A Rust sync server owns the canonical vaults on infrastructure you control; Flutter clients on macOS, Android, and web keep pace. The same knowledge is available to AI agents through MCP.
Your knowledge. On your infrastructure.
Site: storm.dewansh.space · Clients: storm.dewansh.space/clients · Releases: GitHub Releases
┌──── clients (one Dart codebase) ────┐
│ macOS · Android · Web │
│ editor · cache · outbox · sync │
└──────────────┬──────────────────────┘
REST + WebSocket
┌──────────────┴──────────────────────┐
│ storm-server (Rust, axum) │
│ 3-way merge · FTS5 · MCP · watcher │
└──────┬───────────────────┬──────────┘
vaults/*.md state/
plain markdown registry + indexes
Notes stay ordinary .md files under a storage root you control. Storm’s own
state lives in a sibling state/ directory — never inside the vaults.
Debian / Ubuntu — apt bootstrap, then start:
curl -fsSL https://dewanshdt.github.io/Storm/install.sh | sudo sh
sudo storm-server up
sudo storm-server statusThat URL is the apt repository root (not the marketing site). Details:
deploy/README.md. Clients (macOS zip, Android APK, web
UI) are on Releases and the
Clients page.
sudo apt update
sudo apt install --only-upgrade storm-server
sudo systemctl restart storm-server
sudo storm-server statusCurrent release: v0.2.3 (pre-release).
| Path | What |
|---|---|
apps/server |
Rust sync server (REST, WebSocket, MCP) |
apps/client |
Flutter app — macOS, Android, web (Linux desktop deferred) |
apps/www |
Marketing site (Astro) → storm.dewansh.space |
deploy/ |
systemd units, apt bootstrap, backup |
PLAN.md |
Living plan, status, and decision log |
docs/ |
Design briefs and findings (see links in PLAN.md) |
Requires Rust and Flutter. Point the server at a directory that contains
vaults (VAULT_ROOT), not at a single vault:
make dry-run VAULT_ROOT=~/vaults-copy # report only — writes nothing
make server VAULT_ROOT=~/vaults-copy # http://127.0.0.1:8484, token: testtoken
make client # or: make web / make serve-web
make www-dev # marketing site locallymake help lists every target.
make check # clippy + analyze + both unit suites
make test-live # starts a server, runs integration suites, tears downUnit suites need nothing running. Live suites drive the real client against a real server.
When enabled, the server exposes twelve tools over Streamable HTTP at /mcp
(nine read tools always; create / update / delete when writable). Off by
default. See apps/server/README.md.
M0–M15 are done and deployed. M16 (marketing site) is live at storm.dewansh.space. v1 is intended for a trusted network with a shared bearer token — TLS and per-device tokens before exposing it more widely.
See PLAN.md for milestone status, the decision log, and open
items. License: MIT.