Stackmap reads your code and maps every service, database, queue and third-party API, then links each box and arrow to the exact line that proves it. One command. No AI, no account, nothing uploaded.
The real architecture lives in manifests, compose files, env templates, infrastructure code and imports. Stackmap reads all of it, so the map matches the code you ship today.
Click a database and see every service that uses it, through which ORM, with the import lines and a link to them on GitHub. AI-drawn diagrams guess; Stackmap only draws what it can prove.
$ npx stackmap-cli why stripe
Keep a Mermaid diagram between two markers in your README. GitHub renders it natively, and CI fails when the code and the diagram disagree.
$ npx stackmap-cli readme --check
The GitHub Action comments when a pull request adds a database, a service-to-service call or a new third-party API, with a diagram of just the change.
- uses: AnshumaanSinghh/Stackmap@v1
"Frontends never touch the database." "Only the API calls AI providers." Write it once in .stackmap.json; violations are annotated on the line that caused them.
{ "deny": "kind:app -> category:database" }An MCP server gives Claude Code, Cursor and other agents the system's shape before they edit it: what uses what, what breaks if it changes.
$ claude mcp add stackmap -- npx -y stackmap-cli mcp
Runs locally, makes no network requests, never reads .env files and never stores values. The HTML map is one self-contained file you can attach anywhere.
$ npx stackmap-cli -f md -o STACK.md
Generated by Stackmap from each project's public code, with no hand edits. Open one and click around: every box links to the line on GitHub that put it there.
Scheduling platform: Next.js and NestJS over PostgreSQL, with dozens of calendar and video integrations.
Project tracker: Django and Celery workers on RabbitMQ, three React apps, MinIO storage.
Social network server: a Rails app, a Node streaming service and Sidekiq workers.
LLM observability: Next.js web and an Express worker over ClickHouse, PostgreSQL and Redis.
Link management: one Next.js app talking to 20+ APIs, PlanetScale, Tinybird and Upstash.
Photo backup: NestJS server, SvelteKit web, a Python machine-learning service.
Customer support: a Rails monolith with Sidekiq, Vue, and 30+ channel integrations.
Team wiki: one Koa + React app with PostgreSQL, Redis, S3 and many sign-in providers.
Deterministic static analysis. Same code in, same map out.
Every folder with a manifest (package.json, pyproject.toml, go.mod, Cargo.toml, Gemfile, pom.xml ...) is an app, service, worker or library.
Imports, env vars read and API hosts called, in nine languages. Tests, scripts and tool config are skipped.
500+ technologies, each name verified against its registry: SDKs, drivers, Docker images, env vars, hosts and Terraform types.
docker-compose, Kubernetes, Terraform, Wrangler, Render, ORM config and .env.example files wire the boxes together.
Stackmap answers the question new teammates, reviewers and auditors ask: what is this system made of, and what does it talk to?
| Stackmap | Hand-drawn | Diagrams as code | AI generators | Import graphs | |
|---|---|---|---|---|---|
| Draws itself from the code | ✓ | ✗ | ✗ | ✓ | ✓ |
| Services, databases, queues, third-party APIs | ✓ | ✓ | ✓ | partly | files only |
| Every box links to the code behind it | ✓ | ✗ | ✗ | ✗ | ✓ |
| Deterministic | ✓ | n/a | ✓ | ✗ | ✓ |
| Code stays on your machine | ✓ | ✓ | ✓ | usually not | ✓ |
| Comments architecture changes on PRs | ✓ | ✗ | ✗ | ✗ | ✗ |