Dev Container Primer

A dev container is a portable, reproducible development environment defined as code. It runs inside Docker and guarantees every team member shares the exact same toolchain, extensions, and runtime.

Why use one?

  • Zero drift. Node 20.11, pnpm 9, and every system dependency are pinned in a JSON file.
  • Instant onboarding. Clone the repo, click “Reopen in Container,” and you’re building in under 90 seconds.
  • CI parity. The same image that runs locally runs in GitHub Actions — no more “works on my machine.”

The anatomy

A single file — .devcontainer/devcontainer.json — drives everything:

{
  "name": "Meridian",
  "image": "mcr.microsoft.com/devcontainers/typescript-node:20",
  "features": {
    "ghcr.io/devcontainers/features/node:1": {}
  },
  "customizations": {
    "vscode": {
      "extensions": [
        "bradlc.vscode-tailwindcss",
        "esbenp.prettier-vscode"
      ]
    }
  },
  "postCreateCommand": "pnpm install"
}

Getting started

  1. Install Docker Desktop and the VS Code Dev Containers extension.
  2. Add the .devcontainer folder to your repo root.
  3. Run Dev Containers: Reopen in Container from the command palette.
  4. Wait for the post-create script — then start shipping.
Meridian tip: Our monorepo ships with a pre-configured dev container. Clone it and you’ll have the full toolchain — Next.js 14, Tailwind, and pnpm — without installing anything locally.