One Machine, A Hundred Risk Profiles
You can vibe code safely! Where people get hurt is in how they set the whole thing up.
The typical setup now is one device with everything on it - like a client project, a weekend toy, a half-finished startup and a scraper you wrote at 2am. Now there are dozens of repos, each pulling its own dependencies, MCP plugins, and background processes. They feel like separate swim lanes because they sit in separate folders and windows.
That separation is cosmetic! Everything shares one filesystem, keychain, shell history and SSH agent. A package installed for the toy runs with the same privileges as the client work. A process started in one repo can read the secrets loaded for another. It is one machine wearing a hundred hats.
This was fine when you ran two or three tight projects you understood end to end, with little on the machine worth stealing. Tools like Codex Desktop and Cursor make spinning up a new project nearly free, so the count drifted from a handful to hundreds, each dragging in a dependency tree nobody know what it is there for.
The trouble is that each project carries a different risk profile. The client repo holds production credentials, while the scraper pulls untrusted code off the internet by design. On a shared device the scraper's worst day becomes the client's worst day, because a poisoned package in the throwaway project can walk straight into the credentials of the serious one.
Safe vibe coding comes down to where the work runs. Give each risk profile its own isolated, disposable environment, so a bad day stays in the lane it started in.
Practical note: I leaned on GitHub Codespaces for a long time, and these days I run isolated Firecracker VM dev boxes that I connect to through VSCode. Spinning up a fresh one is easy, though it is certainly more involved than clicking a new Codespace into existence. The honest catch is cost. It is not nothing, and it can get expensive unless you roll your own the way I did. That is just one route. There are plenty of ways to keep the lanes from bleeding into each other, and any of them beats a single machine carrying everything.