I'm moving all my development to devcontainers
Early Years
When I first started developing I really had no clue what a container was and why I should use one.
All the getting started tutorials at the time were all the same. Install node, npm, initialize a package, and install your dependencies. For the first couple projects it was super simple and life was great.
Branching Out
But as I started freelancing for multiple clients new projects and new requirements were making a mess of my dev computer. Different versions of python getting installed all over using venv or virtualenv, different versions of yarn, different versions of pnpm swapping corepack, different versions of node being managed by nvm.
Going Serverless
And then I got into cloudflare worker development where different clients had their own workers accounts so I was having to log in and out of specific accounts to run some local dev features and provision new services, and this was a pain because I could not for the life of me
Enlightenment
I started using devcontainers at work for a big project and really enjoyed it. I was onboarded to my project in less than an hour and had a full up and running frontend, backend, postgres db, analytics db, cache, job runner, auth service, and a few other containers that ran the local infrastructure. Whenever a change was made or a new service added, we just rebuilt the container and the new service was instantly available across all the devs and namespaced to that specific project.
...and it got me thinking. With all these services namespaced to a specific project I could do everything I used to without needing any type of version manager for any tool. Devcontainers was the ultimate version manager where the entire container had the correct versions of every piece of software you needed to run a project.
Anyways, I was lazy and sat on this for a bit with no active client projects and it seemed like a lot of work to move any type of legacy project.
The Catalyst
Life was simpler when I was oblivious. -- Me
And then the 2025 supply chain attacks started happening, specifically the s1ngularity attack. (1)
I had at the time had nx installed on my personal computer but with the new job it had been off and out of use.
I freaked the F out because your were compromised from just having the NX plugin installed.
Looking toward the future
The next time I loaded up my laptop I shut off wifi instantly, checked if I was compromised and lucky found no traces of a github repo or credentials being leaked.
And then I proceeded to uninstall every single vscode plugin I used to use, and stripped out the node_modules from all of my existing projects.
Going forward I'm going to be using devcontainers for all of my projects.