NetMap — Online network diagram & topology maker for home labs
Free, browser-based network diagram tool for sysadmins, DevOps and homelab enthusiasts. Drag servers, link DNS zones, import nmap XML, export PNG. No account needed to start.
Why NetMap
Most network-diagram tools fall into two camps. Either licensed enterprise software with cloud sync (Lucidchart, Visio, draw.io), or text-only YAML editors. NetMap sits in the middle: a fast visual canvas, a node model that actually understands what a server, DNS zone or project is, and zero servers between you and your data. Everything lives in localStorage. The Supabase login is there only to gate Export and Import for analytics; the maps themselves never leave the browser.
Positioning-wise, NetMap is an open-source successor to netViz (netViz Inc., 1990 → CA Technologies → discontinued 2012) — a typed-node network documentation tool with no modern in-browser equivalent until now.
How to use
- Open map.den.dance. A demo sheet loads on first visit.
- Add nodes manually with
+ Node, or click Import in the toolbar and pick a.json,.xml(nmap) or.csvfile. - Connect nodes by clicking
+ Connection, then the two endpoints. DNS zones and project-to-server links draw themselves from your data. - Switch sheets for different environments, lock a sheet to make it read-only, export to PNG, PDF or JSON when you are done.
Agent mode (MCP)
Optional, only useful if you already use Claude Code, Claude Desktop, Cursor or another MCP-aware client.
npx -y @den.dance/network-diagram-mcp
Or install via Smithery in one click. The package README has steps for Claude Desktop, Claude Code and Cursor. Open NetMap in a browser tab — the MCP bridge is enabled by default in v1.2+, so the connection comes up automatically. The agent now has 44 tools to build, edit, search and export the map for you.
NetMap vs Visio, Lucidchart and draw.io
| NetMap | draw.io | Lucidchart | Visio | |
|---|---|---|---|---|
| Cost | Free for personal/homelab | Free | Paid (cloud) | Paid (license) |
| Runs in browser, no install | ✓ | ✓ | ✓ | — |
| Typed network nodes (server, DNS zone, project, firewall…) | ✓ | Generic shapes | Generic shapes | Generic shapes |
| Clickable services (ssh / http / postgres / redis) | ✓ | — | — | — |
| nmap XML import with auto-typing | ✓ | — | — | — |
| CSV inventory import | ✓ | — | — | — |
| Local-first (your data never leaves the browser) | ✓ | ✓ (with desktop) | — | — |
| Driven by an AI agent (MCP) | ✓ | — | — | — |
If you only need a one-off diagram for a slide deck, draw.io is fine. NetMap pays off when the map is a living document — when ports, IPs and DNS records actually map to something you SSH or open in a browser.
FAQ
Is NetMap free?
Yes — for personal and homelab use. The app is free to use at map.den.dance with no account required to start. Commercial / corporate use requires a separate license; contact netmap@den.dance.
Do I need an account?
No. You can draw, save, import and use the entire app without signing in. Sign-in (Supabase OAuth) is only required to gate Export and Import — for analytics, not for storage. Your maps live in your browser’s localStorage either way.
Can NetMap import an nmap scan?
Yes. Run nmap -oX scan.xml <target>, drop the XML on Import in the toolbar, and NetMap places every host with its open ports on the canvas. Node type is auto-inferred from OS fingerprint and port profile — routers, switches, firewalls, servers and printers get the right icon without manual tagging.
How is NetMap different from draw.io, Lucidchart and Visio?
Those are general-purpose diagramming tools with shape libraries. NetMap has typed network nodes — a server node knows about IPs, ports and Docker services; a DNS zone node knows about A/CNAME records and auto-connects to its targets. Port buttons are clickable: hit port 22 to open SSH in your installed client, hit 5432 to open psql or DBeaver. You cannot do that in draw.io.
Can Claude or Cursor build the map for me?
Yes. Install the MCP server (npx -y @den.dance/network-diagram-mcp or via Smithery) and open a NetMap tab. The agent gets 44 tools — add/move/delete nodes, draw connections, run nmap import, smart auto-layout, full-text search across nodes/ports/stickies, export PNG / PDF / JSON. The bridge is stdio → WebSocket on localhost:47821, so the agent talks to the live browser tab in real time.
Does NetMap work offline?
Yes. Once the page loads, edits happen in localStorage — no server round-trips. You only need network access for the initial page load and to sign in for Export/Import. The MCP server runs locally and does not need internet either.
What network device types are supported?
13 types: server, router, switch, firewall, DNS zone, project, external service, PC, NAS, access point, camera, printer, other. Each type has its own icon and field set (Docker services on servers, A/CNAME records on DNS zones, gateway IP on routers and so on).
What about URL protocol handlers — does it really open my terminal?
Yes, on Linux, macOS and Windows. Run npx @den.dance/network-diagram-mcp install --all once per machine and NetMap registers ssh://, postgres:// and redis:// schemes. Click an SSH port → iTerm2 / Windows Terminal / GNOME Terminal / kitty / Terminal.app pops up with the right command. Click a Postgres port → psql / TablePlus / DBeaver / pgAdmin. Click a Redis port → redis-cli / RedisInsight.
Links
- Web app: map.den.dance
- MCP server (npm): @den.dance/network-diagram-mcp
- MCP server (Smithery): smithery.ai/servers/den-indance/network-diagram-mcp
Features
- ▸ 13 device types: server, router, switch, firewall, DNS zone, project, external service, PC, NAS, AP, camera, printer, other
- ▸ Multi-IP per node with labels (LAN, VPN, public) so dual-homed boxes render the way they actually are
- ▸ Docker services nested inside a server node, each with host:container port mapping and a clickable URL
- ▸ DNS zones with A and CNAME records. Each A-record auto-draws a connection to the target host.
- ▸ External services (Supabase, Stripe, Cloudflare, anything) with served-domain links back to your servers
- ▸ Click any port to open the right client: ssh, postgres, redis, http, rdp, vnc and more, via OS protocol handlers (Linux, macOS, Windows)
- ▸ In-app client picker (v1.2+): SSH/Postgres/Redis port click offers your installed clients — iTerm2, Windows Terminal, kitty, psql, DBeaver, TablePlus, redis-cli, RedisInsight — and launches the one you choose
- ▸ Multi-sheet topology so home, prod and staging live side by side in one app
- ▸ Multi-select with marquee (Ctrl/Cmd+drag), Shift-click toggle, Ctrl/Cmd+A, multi-drag
- ▸ Sticky notes in 6 colors, resizable, for annotations and TODOs on the canvas
- ▸ Edge auto-pan: drag a node to the edge of the workspace and the canvas pans, the node stays under the cursor
- ▸ nmap XML import (`nmap -oX`) drops every host on the canvas with its open ports and auto-infers type from OS fingerprint + port profile (router / switch / firewall / server / printer)
- ▸ CSV import with auto-detected columns (name, ip, type, ports, notes; aliases like hostname / description accepted)
- ▸ JSON snapshot import and export to move maps between machines
- ▸ PNG and PDF export with smart bounding-box capture for documentation
- ▸ Auto-connections: project node links to its parent server, DNS A-records link to the host, external services link to the boxes they serve
- ▸ Auto-layout: force-directed (deterministic via seed), cluster-by-type, cluster-by-connection
- ▸ Optional MCP server (`@den.dance/network-diagram-mcp`) with 44 tools so Claude or Cursor can build, edit and export the map
- ▸ Available on Smithery for one-click install in Claude Desktop and Cursor
- ▸ Sheet lock so a finished diagram cannot be mutated by accident or by an agent
- ▸ Per-sheet view memory: zoom and pan restore when you switch sheets
- ▸ Everything stays in the browser localStorage. Sign-in only gates Export and Import.
- ▸ 10 UI languages: EN, UK, ES, ZH, DE, FR, PT, AR, JA, HI
Who it's for
Map a small production fleet or a corporate LAN without paying for Lucidchart or wrestling with Visio. Drag servers, link domains, click ssh:// ports to open a terminal in your installed client.
Document your home network the way it actually is — dual-homed boxes, Docker stacks, DNS zones, NAS, cameras — and keep it in your browser. Free for personal and homelab use, no account required.
Run nmap, drop the XML on Import, get a visual inventory of every open port in two seconds. Hosts are auto-typed from OS fingerprint and port profile. Tag the boxes you trust.
Turn on the MCP server and let the agent build the map. It scans, classifies hosts, places nodes, draws connections, runs auto-layout, and exports a PNG without you touching the canvas.
Other side projects
Freeze Dance & Musical Chairs — YouTube Pauser
Random YouTube pauses for musical chairs, freeze dance, and kids' brain breaks. No DJ needed.