The DevEx Compass

Ergonomics runs west to east, production parity south to north. A public checklist places every dot.

How a dot is placed

No dot is placed by hand. Each tool earns 10 points per criterion it meets, with a source. Ties sit in a small cluster around the same point.

Developer ergonomics west → east

  1. One command starts it. A single command brings up the whole thing it manages.
  2. Works with little config. Useful out of the box, or with a short generated config.
  3. Fast feedback on change. Live reload, file sync or incremental rebuilds in seconds.
  4. Clear errors and diagnostics. Says what broke and how to fix it, or ships a doctor-style check.
  5. Built-in UI. A web dashboard, TUI or desktop app, not only raw logs.
  6. Quickstart in minutes. Official docs get a newcomer to a working result in about ten minutes.
  7. macOS, Linux and Windows. Supported on all three, natively or through WSL.
  8. Local, no account. Runs on your machine without signing up or a network round trip.
  9. Light and quick to start. Starts in seconds and does not need a large VM or many GB of RAM.
  10. Agent-ready. An MCP server, a JSON output mode or an API an AI agent can drive.

Complexity and production parity south → north

  1. Real containers. Runs or builds OCI containers.
  2. Many services at once. Brings up and coordinates several services together.
  3. Prod-like networking. Service-to-service networking, DNS or ingress like production.
  4. Real stateful dependencies. Databases, queues or volumes, not only in-memory fakes.
  5. Same artifacts as production. Uses the images, bundles or lockfiles that production uses.
  6. Kubernetes semantics. Manifests, pods, Helm charts or a real Kubernetes API.
  7. Cloud APIs. Emulates or reaches real cloud provider APIs.
  8. Prod-like config and secrets. Environment, config and secrets handled the way production handles them.
  9. Logs, metrics and traces. Exposes telemetry the way production does.
  10. Scales to big teams. Built for many services and many developers sharing a setup.
The same tools as a table
ToolFamilyCategoryRingLicenseErgonomicsParity
LocalStack Local AWS cloud emulator in a container Local services & data Cloud emulators Adopt Free tier, paid plans 60 30
Moto Mock AWS services for Python tests or as a server Local services & data Cloud emulators Adopt Open source 50 10
MinIO S3-compatible object storage server Local services & data Cloud emulators Hold Open source 60 20
Azurite Local emulator for Azure Blob, Queue and Table storage Local services & data Cloud emulators Adopt Open source 60 20
Firebase Emulator Suite Local Firestore, Auth, Functions and more with a UI Local services & data Cloud emulators Adopt Open source 70 30
Google Cloud emulators gcloud emulators for Pub/Sub, Firestore, Spanner, Bigtable Local services & data Cloud emulators Adopt Free, closed source 40 10
Miniflare Local simulator for Cloudflare Workers on workerd Local services & data Cloud emulators Adopt Open source 60 30
fake-gcs-server Emulator for the Google Cloud Storage API Local services & data Cloud emulators Adopt Open source 50 20
Supabase CLI Run the full Supabase stack locally in Docker Local services & data Local backends Adopt Open source 60 40
Appwrite Self-hostable backend with auth, DB, storage, functions Local services & data Local backends Adopt Open source 60 40
PocketBase Backend in one Go binary with SQLite and admin UI Local services & data Local backends Trial Open source 70 10
Convex Reactive TypeScript backend with a local dev server Local services & data Local backends Adopt Free tier, paid plans 70 10
Nhost Postgres, Hasura GraphQL, auth and storage stack Local services & data Local backends Adopt Open source 50 40
Neon Serverless Postgres with copy-on-write branches Local services & data Local backends Adopt Free tier, paid plans 40 10
WireMock HTTP API mock server with stubbing and recording Local services & data Mocks and tunnels Trial Open source 50 0
Mockoon Desktop app and CLI for local mock APIs Local services & data Mocks and tunnels Adopt Open source 70 0
Prism Mock server and validator from OpenAPI documents Local services & data Mocks and tunnels Adopt Open source 70 0
Mock Service Worker API mocking by intercepting requests in browser and Node Local services & data Mocks and tunnels Adopt Open source 40 0
Mailpit SMTP catcher with web UI and API for testing email Local services & data Mocks and tunnels Adopt Open source 80 0
MailHog SMTP testing server with web UI Local services & data Mocks and tunnels Hold Open source 60 0
ngrok Public HTTPS tunnels to local services Local services & data Mocks and tunnels Adopt Free tier, paid plans 60 10
Cloudflare Tunnel Expose local services through Cloudflare via cloudflared Local services & data Mocks and tunnels Adopt Free tier, paid plans 40 10
localtunnel Expose localhost through a public URL Local services & data Mocks and tunnels Hold Open source 40 10
Tailscale Funnel Share a local port to the internet over Tailscale Local services & data Mocks and tunnels Adopt Free tier, paid plans 40 10
Microcks Mocks and contract tests from OpenAPI, AsyncAPI, gRPC Local services & data Mocks and tunnels Adopt Open source 60 20
Testcontainers Throwaway Docker dependencies from test code Local services & data Test dependencies Adopt Open source 40 50
Toxiproxy TCP proxy that injects latency and network faults Local services & data Test dependencies Adopt Open source 50 10
Pact Consumer-driven contract testing between services Local services & data Test dependencies Adopt Open source 40 10
Prisma TypeScript ORM with schema migrations and Studio Local services & data ORMs and migrations Adopt Open source 70 20
Drizzle ORM SQL-like TypeScript ORM with drizzle-kit migrations Local services & data ORMs and migrations Trial Open source 60 20
Atlas Declarative schema-as-code migrations with linting Local services & data ORMs and migrations Adopt Free tier, paid plans 50 30
dbmate Language-agnostic SQL migration tool Local services & data ORMs and migrations Adopt Open source 60 20
Flyway Versioned SQL migrations for many databases Local services & data ORMs and migrations Adopt Free tier, paid plans 40 30
Liquibase Database change management with changelogs Local services & data ORMs and migrations Adopt Free tier, paid plans 40 30
golang-migrate Database migrations CLI and Go library Local services & data ORMs and migrations Adopt Open source 50 20
Sqitch Dependency-based database change management Local services & data ORMs and migrations Trial Open source 30 20
Alembic Migrations for SQLAlchemy Local services & data ORMs and migrations Adopt Open source 50 20
Kysely Type-safe TypeScript SQL query builder Local services & data ORMs and migrations Trial Open source 50 10
TypeORM Decorator-based ORM for TypeScript Local services & data ORMs and migrations Adopt Open source 30 20
Sequelize Promise-based ORM for Node.js Local services & data ORMs and migrations Trial Open source 30 20
SQLAlchemy Python SQL toolkit and ORM Local services & data ORMs and migrations Adopt Open source 40 10
Entity Framework Core .NET ORM with code-first migrations Local services & data ORMs and migrations Adopt Open source 40 20
sqlc Generate type-safe code from SQL queries Local services & data ORMs and migrations Trial Open source 60 0
MikroORM TypeScript ORM with unit of work and migrations Local services & data ORMs and migrations Adopt Open source 30 20
SQLx Async Rust SQL toolkit with compile-time checked queries Local services & data ORMs and migrations Trial Open source 40 20