Hi guys,
I’m trying to level up my workflow and move away from a “messy local setup” toward something more professional, reproducible, and closer to what’s used in real-world teams.
I’ve mostly worked on “classic” web projects (custom sites, sometimes WordPress with custom themes, sometimes more generic stacks with a backend + database). Until now I’ve used a typical local setup (XAMPP / localhost), which worked but became painful over time:
- file permission issues (especially on Linux)
- mismatched runtime versions (PHP, MySQL, etc.)
- one global environment shared across projects
- hard to reproduce setups
So I’m trying now resetting everything and moving toward:
- Git for versioning (yes, so far the projects I built my few clients were simple and didn0t play the long ball on this side)
- Docker for isolated, per-project environments (standardization of my setup/tools for each project)
- rebuilding projects locally starting from the live/staging version (when I need to build/implement new features or pages for existing websites)
I'm currently experimenting with this setup rn:
- docker-compose (app + DB, sometimes extras like admin tools / CLI)
- bind-mounted project files
- versioning only what matters (app code, configs), ignoring generated data (uploads, DB dumps, etc.)
- workflow: spin up → develop → commit → deploy
This already feels much more solid than a classic localhost stack but since I don't have a ton of experience I would like to avoid overengineering and feel overwhelmed by managing unnecessary complexity a keep friction as low as possible.
My questions are (I'm asking a lot of things here so feel free to reply to the ones you prefer, of course):
A ) What does your actual day-to-day workflow look like for web projects? I mean not just one stack. I’m interested in how you handle things in general, across projects like:2). And more specifically:
- Do you use the same kind of setup for all projects (for example Docker or similar tools), or does it change depending on the project?
- How do you usually make sure your local development setup stays consistent and doesn’t become messy over time?
- Do you mostly work in fully separated environments per project, or do you still rely on some shared tools on your machine?
B ) How do you handle ongoing development of already live projects?
This is the part I’m struggling with the most tbh (also in some Wordpress projects I have using ACF, etc.).
When a project is already in production and has already real data, users, and a working database:
- Do you copy the current live version into your local environment when you need to make changes?
- Or do you usually have a separate “testing version” that stays close to the live one?
- How do you avoid ending up with a local version that is different from what is actually running online?
Not looking for “perfect setups”. I'm more interested in what people actually use in practice and why (with a focus on pragmatism, stability, efficiency and simplicity based on your personal experience).
Basically, I'm trying to understand what’s common in real-world workflows vs the solo dev habits "bubble". Especially when websites or web apps become a bit more complex than usual.
EDIT: Sorry guys, I accidentally cut out a couple of parts when copying from the .txt file I used to draft the post. I’ve fixed it now.