DEV Community

Jonathan Martin Paez
Jonathan Martin Paez

Posted on • Originally published at github.com

Mission Control: one screen for the folder full of half-running dev servers

If you keep a dozen projects in one folder, you know the ritual. cd into a repo. Try to remember whether it's npm run dev or npm start. Launch it. Launch a second one — and watch both fight over port 5173. An hour later, find the stray node process still holding a port from yesterday.

I got tired of the wall of terminal tabs, so I built Mission Control: a local-only dashboard that auto-detects every dev project in a folder, figures out how to launch each one, and runs them all at once on collision-free ports.

Point it at your projects root. It figures out the rest.

There's no config file to write and no list of project names to maintain. Mission Control scans your projects folder and infers each project's type and dev command from its own files — package.json, framework configs, pyproject.toml. It recognizes Vite (React/Vue/Svelte/Phaser), Next, Astro, Electron, Express/Fastify/Koa, static HTML sites, Python/FastAPI, Telegram bots, npm-workspace monorepos, and backend/ + frontend/ splits.

Run many at once, never a port clash

Every project gets a unique port from a configurable range (default 4000–4099), injected at launch via the right mechanism per framework — PORT env plus the correct CLI flag. Start five servers at the same time and they're all isolated. Pinning, seeding, and clash-reallocation are deterministic, so the same project lands on the same port each run.

And when you press stop, it means stopped: a Windows process-tree kill (taskkill /T /F) so nothing is left holding a port. It guards against double-starts and refuses to clobber a port already held by a foreign process.

Everything in one view

  • Live logs — ANSI-cleaned, streamed over WebSocket, with filter/follow/clear
  • Git at a glance — branch, dirty count, ahead/behind, last commit
  • Health — published npm/PyPI version and GitHub CI status via gh, cached
  • Friendly failures — missing node_modules? One-click install (npm or uv), streamed live. Drop a new folder in and it animates into the grid via a filesystem watcher, no restart.

What it is NOT

Honesty matters, so: it's not cloud (binds 127.0.0.1, never 0.0.0.0), not multi-user, not a deploy tool, and not telemetry-backed. It launches the same dev commands you'd run by hand. Built and tested primarily on Windows.

It's MIT on GitHub: https://github.com/JoniMartin27/launchpad

Top comments (0)