What is a full-stack dev environment?
It is everything running together on your machine: the frontend dev server, the backend API, and a local database, all talking to each other. A smooth setup lets you change any layer and see the result immediately across the whole app.
Why it matters
Full-stack work means juggling multiple processes, and a painful setup taxes you every single day. Getting client, server, and database to run together reliably — and reproducibly for teammates — removes constant friction and is the baseline for productive development.
What to learn
- Running multiple processes (client, server, db)
- A local database via Docker or a managed dev instance
- Environment variables for local config
- Proxying or CORS so the client reaches the server
- Hot reload across the stack
- Scripts to start everything with one command
- Making the setup reproducible for a teammate
Common pitfall
A setup only you can run, with undocumented steps and manual database seeding. A new teammate (or future you on a new machine) loses a day getting started. Script the setup, document the prerequisites, and use Docker for the database so "clone and run one command" actually works.
Resources
Primary (free):
- Docker — Get started · docs
- Vite — Server proxy · docs
- 12-Factor — Dev/prod parity · docs
Practice
Set up a project where one command starts the frontend, the backend, and a local database (Docker is easiest for the db), with environment variables wiring them together. Confirm a code change in any layer hot-reloads. Done when a fresh clone runs with a single documented command.
Outcomes
- Run client, server, and database together locally.
- Wire them with environment variables and a proxy.
- Get hot reload working across the stack.
- Make the setup reproducible with one command.