An open-source canvas for designing, simulating and explaining software architecture.
No accounts. No backend. No lock-in.
Editor · Docs · Contributing · Self-hosting · Security
Nautilus is a browser-only tool for system design. A diagram is a real directed graph, which is what makes the rest possible: the simulator can walk it, the AI assistant can reason about it, and the exported JSON is something you can diff in a pull request.
Your diagrams live in your browser and in the files you export. AI features use a key you supply and talk straight to the provider. That is what keeps Nautilus genuinely free and trivial to self-host.
| Flow simulation | Watch data traverse the architecture step by step. Parallel branches light up together; cycles, dangling edges and isolated nodes are reported instead of failing silently. Play, pause, step and 0.5×–4× speed. |
| Load playground | Give nodes capacity, replicas, latency, error rates and a price, then push traffic through. Live utilisation, queue-inflated p95 latency, dropped traffic, queue backlog and ranked bottlenecks. |
| Capacity & cost | Replica counts sized to a target utilisation (Payment Service 8 → 90), the monthly bill that implies, and cost per million requests. Apply a suggestion with one click. |
| Load ramp | Sweep from zero and plot offered vs delivered — the knee is where the design gives out, and the panel names the load where p95 first breaches your budget. |
| Failure injection | Take a node out and watch what survives, where traffic lands and what the success rate becomes. Pin a baseline to see every change as a delta. |
| Component library | Hundreds of searchable cloud, database, messaging, auth and DevOps icons, drag-and-drop onto the canvas. |
| Templates | Netflix, Uber, WhatsApp, Instagram, YouTube, Spotify, Zomato, three-tier and microservices, ready to load and edit. |
| AI assistant | Bring your own OpenAI, Gemini, Claude or Groq key. It sees your canvas, so it can design, extend, review or explain — and nothing is applied without your say-so. |
| Editing tools | Group, ungroup, align, distribute, copy/paste, duplicate, nudge, undo/redo, plus keyboard shortcuts. |
| Sharing | JSON export/import, PNG export, self-contained share links, and a Markdown capacity report for design docs and PRs. |
| Runs anywhere | Vercel, any Node host, a static CDN, one npx command, or a packaged desktop app. |
| Private by default | The app makes no network calls of its own. No telemetry, no accounts, no server-side storage. |
git clone https://github.com/Somilg11/nautilus.git
cd nautilus
npm install
npm run dev # http://localhost:3000Requires Node.js 20+. There are no environment variables to set.
npx github:Somilg11/nautilus # starts the app and opens your browsernpm run desktop # Electron shell around the same app
npm run desktop:build # package a .dmg / .exe / AppImage| Command | What it does |
|---|---|
npm run dev |
Dev server with hot reload |
npm run build |
Production build (type-checks too) |
npm start |
Serve the production build |
npm run lint |
ESLint |
npm run typecheck |
tsc --noEmit |
npm test |
Unit tests (Vitest) |
npm run desktop |
Run the desktop shell |
npm run desktop:build |
Package desktop installers |
| Guide | For |
|---|---|
/docs |
The in-app documentation site |
docs/FEATURES.md |
Every feature, how to reach it, and its limits |
docs/SELF_HOSTING.md |
Deployment, Docker, static export, operator security notes |
CONTRIBUTING.md |
Repo layout, conventions, how to add templates and icons |
SECURITY.md |
Threat model and how to report a vulnerability |
Next.js 16 · React 19 · TypeScript · React Flow 11 · Tailwind CSS 4 · shadcn/ui · Vitest · Electron (optional desktop build)
Contributions are welcome, and templates and icons are genuinely easy first pull requests — each is a single file. Start with CONTRIBUTING.md, or open an issue if you want to discuss a change first.
Before opening a PR:
npm run lint && npm run typecheck && npm test && npm run buildNautilus stores API keys in the browser, so anything that can execute script on its origin is a key-disclosure bug. The app ships a strict Content-Security-Policy and validates every externally-sourced diagram. Please report vulnerabilities privately — see SECURITY.md.
MIT — see LICENSE.
Built by the open-source community.