Open source · MIT licensed

System design should be
readable, runnable and yours.

Nautilus is a browser-only canvas for designing, simulating and explaining software architecture. No accounts, no backend, no lock-in — just a graph you can draw, run traffic through, size and price, share as a file, and host yourself.

Why it exists

Architecture tools stopped being about architecture.

Most diagramming tools treat a system design as a picture: shapes, arrows, a login wall and a pricing page. The structure of the system — what depends on what — is thrown away the moment you save.

Nautilus keeps that structure. Because the canvas holds a real directed graph, the same document can be traced, loaded with traffic until a service saturates, reviewed by an assistant that understands it, and committed to a repository as plain JSON. And because it runs entirely in the browser, none of that requires trusting anyone with your architecture.

Principles

Four decisions everything else follows from

Your data stays yours

No accounts, no servers, no telemetry. Diagrams live in your browser and in files you export. The app makes no network calls of its own.

Bring your own key

AI is optional and uses a key you supply, sent straight to the provider. That is how the tool stays genuinely free instead of metered.

Plain, portable format

Every diagram is JSON you can diff, commit, script or import elsewhere. There is nothing to migrate away from.

Diagrams you can run

The canvas holds a real dependency graph, so it can be traced step by step, loaded with traffic until something gives out, and priced.

What's inside

A short tour

Component library
Hundreds of cloud, database, messaging, auth and DevOps icons, searchable and draggable.
Templates
Netflix, Uber, WhatsApp, Instagram, YouTube, Spotify, Zomato, three-tier and microservices.
Trace simulation
Layered execution with play, pause, step and speed — parallel branches light up together.
Load playground
Give nodes capacity, replicas, latency, error rates and a price, then push traffic through and watch where it breaks.
Capacity & cost
Replica counts sized to your target utilisation, the monthly bill that implies, and the cost per million requests.
Failure injection
Take a node out and see which paths die, where the traffic lands and what the success rate becomes.
AI assistant
Design, extend, review or explain — with your canvas as context and your own provider key.
Sharing
JSON export and import, PNG export, and self-contained share links that need no server.
Runs anywhere
Vercel, any Node host, a static CDN, one npx command, or a packaged desktop app.
Simulation

A diagram that answers back

Trace walks the graph in dependency order: entry points first, then everything whose upstream work has finished — so parallel branches light up together, and cycles get named instead of hanging.

The load playground goes further. Give each node a capacity, replica count, latency, error rate and price, then set the offered traffic. Every node shows its utilisation, served rate and queue-inflated latency, and the panel names the bottleneck, the dropped traffic and the p95 of the slowest path against your timeout budget. Change a number and the whole picture updates instantly.

It answers the questions a drawing cannot. The ramp sweeps the load from zero and shows you the knee where the design gives out. The capacity plan sizes every node to your target utilisation and prices the result — Payment Service 8 → 90 replicas, $1,050 → $11,800/mo. Failure injection takes a node out so you can watch what survives. Pin a baseline and every later number arrives as a delta, with new bottlenecks called out by name.

The assistant

Useful because it can see the canvas

The assistant receives your current diagram as context, so “review this” and “add a read replica” mean something concrete. It answers in conversation, or returns a complete diagram you can apply.

Nothing is applied automatically: a generated design waits behind Replace canvas, Add to canvas or Discard. Output is validated before it can touch your work, and requests go straight from your browser to OpenAI, Gemini, Claude or Groq with your own key.

How the assistant works
Contributing

Built by the community, and small enough to be approachable

Adding a template or an icon is a single file. The canvas, the simulation engine and the provider client are where the interesting work is. Everything runs locally with npm install && npm run dev.