port 3000 · Node.js dev server (default)
Port 3000 — Node.js / dev tools
Port 3000 is the de-facto default for Node.js dev servers (Next.js, Express, Create React App, Vite preview). Hit a 'port already in use' error? Something's bound to it. Free it before retrying.
beginner
Node.js dev server (default)
Find the process + connect / kill
# macOS / Linux lsof -i :3000 # show pid + command ss -ltnp | grep :3000 # alternate, Linux portcheck 3000 # voiddo's portcheck — same info, friendlier # Kill the process kill -9 $(lsof -t -i :3000) # Or change YOUR app's port: PORT=3001 npm start
Typical services on this port
- Next.js dev server (`next dev` defaults to 3000)
- Create React App (`npm start` → 3000)
- Express.js generated apps (default port)
- Hugo dev server (some configs)
- Storybook (older versions)
Alternatives
Common alternatives if 3000 is taken: 3001, 3002, 4000, 8000, 8080. Most dev tools accept `--port` flag or PORT env var.
Common pitfalls
| Input | Result |
|---|---|
| ⚠ Killing port 3000 sometimes kills your IDE's plugin server (some VSCode extensions use 3000). Check `lsof -i :3000` BEFORE killing. | |
| ⚠ On macOS, `lsof` may need sudo for privileged ports. For 3000+, normal user works. | |
| ⚠ Docker port-mapping: `docker run -p 3000:3000` binds the HOST's 3000. If a host process is on 3000, container fails to start. | |
Edge cases & caveats
Common use cases
- Resolving 'port 3000 already in use' errors
- Audit before starting new dev server
- Identifying mystery process bound to dev port
- Multi-app development (frontend + API on different ports)
See what's bound to your local ports
portcheck shows pid, command, user, address — faster than netstat, simpler than ss. Linux + macOS, zero dependencies, MIT-licensed.
Open portcheck
Related
PostgreSQL · Alternate HTTP / proxies / Tomcat · Cheatsheet of common dev ports · MySQL / MariaDB · ↗ dev server health-check cadence