The local machine is still useful.
It is just no longer the center of modern development work.
That shift has been happening quietly for a while, and I think many teams feel it before they fully name it. Projects get heavier. Toolchains get messier. Environments drift. Teams work across locations, devices, and time zones. At some point, the laptop stops feeling like the best home for serious development and starts feeling like the narrowest part of the workflow.
That is one of the reasons I think cloud VMs matter more than ever now. Not because local development is dead, but because more of the real work around modern software benefits from environments that are easier to reproduce, easier to resize, and easier to separate from personal hardware.
The laptop was never meant to carry everything
For a long time, developers got used to the idea that their main machine should do almost everything.
Editor. Terminal. Containers. Databases. Background services. Build tools. Browsers. SSH keys. Test environments. Maybe even staging-like workloads.
That model worked well enough when projects were smaller and stacks were simpler.
But modern development is rarely that tidy.
A single project might now involve:
- application code
- multiple services
- Docker containers
- a local database
- a queue
- background jobs
- environment variables and secrets
- different language runtimes
- shared team conventions
- production-like debugging needs
Once all of that lands on one laptop, the machine stops being just a workspace. It becomes an operational dependency.
That is where things start to break down.
“It works on my machine” is still a real problem
People joke about it because it is familiar.
But the deeper problem is not the joke. It is the hidden cost.
When each developer machine becomes its own unofficial environment, teams lose time to differences that should not matter:
- slightly different OS versions
- package drift
- conflicting ports
- toolchain mismatches
- broken local dependencies
- setup docs that grow longer every month
That is not just an inconvenience. It is a drag on delivery.
A cloud VM changes that because it gives the team a cleaner base to work from. You define the environment more deliberately, launch the same pattern again when needed, and reduce the number of invisible local differences shaping the result.
That does not solve every engineering problem.
But it removes one of the most common categories of avoidable friction.
Cloud VMs make environments more reproducible
This is probably the most important benefit, and it is still underrated.
A good development environment is not only one that runs. It is one that can be recreated quickly.
That matters for:
- onboarding new developers
- creating temporary environments for contractors
- reproducing a bug on a clean system
- isolating project-specific dependencies
- testing without polluting a personal machine
- preserving a known-good setup instead of rebuilding it from memory
Once you start thinking this way, the value of cloud VMs becomes much clearer.
You stop asking: “Can this run on my laptop?”
And start asking: “How quickly can we recreate this environment if we need it again tomorrow?”
That is a much healthier question for a modern team.
Compute should adapt to the project, not the other way around
Another reason cloud VMs are becoming more natural in development workflows is simple:
projects change faster than laptops do.
A machine you bought for general work last year may be fine for editing code and running a few services. But if the project suddenly needs more RAM, more CPU, a cleaner Linux base, or a better place to run containers and databases together, the laptop becomes the bottleneck.
Cloud VMs change that relationship.
Instead of shaping the project around fixed local hardware, you shape the environment around what the project needs right now.
That flexibility matters more than people think.
A team may not need a huge machine every day. But when they do need more headroom, the ability to launch it quickly matters. And when they no longer need it, they should not still be carrying that cost in physical hardware or personal machine complexity.
That is one reason I think cloud infrastructure is becoming more attractive even for development work that is not “large scale” in the enterprise sense.
Remote work made this shift more obvious
Distributed work did not create the case for cloud VMs.
It just made the weaknesses of local-only development much harder to ignore.
When work happens across multiple locations and devices, local-machine dependency starts causing more friction:
- environment mismatch between teammates
- slower onboarding
- difficulty resuming work across devices
- more painful handoffs
- less clean collaboration around setup and debugging
A cloud VM does not magically solve collaboration. But it does make the environment easier to centralize, reproduce, and control.
That is important.
Because modern teams do not just need code collaboration. They need environment collaboration too.
Once those environments become easier to share conceptually — even if each person still uses their own machine — the workflow gets cleaner.
Safer experimentation is a bigger advantage than people expect
There is another reason cloud VMs fit development work well:
they are easier to treat as disposable.
That matters whenever a developer wants to:
- test something risky
- try a new Linux distro or package setup
- run a heavy toolchain
- debug a strange environment issue
- build a staging-like replica
- spin up a project-specific machine that does not need to live forever
On a personal laptop, risky experimentation carries emotional cost.
You are not just changing an environment. You are changing your machine.
That changes behavior. People test less boldly. They postpone experiments. They keep messy workarounds in place because the alternative feels annoying or risky.
A cloud VM lowers that psychological cost because the environment can be treated more like infrastructure and less like identity.
That is a powerful workflow improvement.
The local machine becomes cleaner too
One of the less obvious benefits of moving more dev work to cloud VMs is that it improves the local machine by removing what does not belong there.
Instead of turning a laptop into a museum of half-used runtimes, abandoned containers, old databases, temporary scripts, and mismatched project dependencies, you can keep local work lighter and more focused.
That leads to a healthier split:
- your personal machine stays cleaner
- project environments become more intentional
- switching contexts becomes easier
- onboarding becomes less personal and more repeatable
That is good for productivity, but it is also good for reliability.
A machine that carries less accidental infrastructure tends to create fewer avoidable surprises.
Why this matters for small teams especially
Large engineering organizations usually have enough operational structure that they can absorb some environment mess.
Small teams do not.
A startup with three engineers, a freelance developer working across clients, a technical founder building the product and the infrastructure, or a student team preparing a demo does not have extra process to waste.
In those environments, environment friction hurts more.
A broken setup is not just a broken setup. It is lost momentum. It is context switching. It is an extra half day. It is uncertainty right when someone was ready to build.
That is why I think cloud VMs are especially powerful for smaller teams.
Not because they need enterprise infrastructure. Because they need fewer invisible blockers.
What this means for Raff
At Raff, this way of thinking influences how we look at the platform.
We do not think cloud VMs are only for “production later.” We think they are useful much earlier than that.
A developer VM should be fast to launch, easy to understand, and flexible enough to support the real tools people use. That is why the basics matter so much:
- current Linux distributions
- fast deployment
- full root access
- snapshot and backup support
- enough performance for real development work
- pricing that does not feel punishing for experimentation
The point is not just to rent a server.
The point is to give builders an environment that feels more reproducible, more disposable, and more practical than trying to force every serious workload through one personal machine.
That is also why I think Linux VMs should be understood as part of a broader workflow, not just as infrastructure for production websites. They are also a clean place to build, test, isolate, and collaborate.
The real shift is not technical — it is behavioral
When I step back, I think the biggest reason cloud VMs are beating local-only development in more cases is not just that the infrastructure got better.
It is that teams are thinking differently.
They are becoming less attached to the idea that development must happen where the keyboard is.
They are becoming more comfortable with the idea that the environment should be portable, reproducible, and shaped around the project rather than tied completely to one device.
That is a healthier mental model.
It leads to better setups. Cleaner handoffs. Less machine-specific weirdness. More flexibility in how teams work.
And over time, I think that becomes one of the biggest quiet advantages in modern software delivery.
What This Means for You
If your team is still forcing every project to live entirely on local machines, I would suggest asking a more useful question.
Not: “Can our laptops handle this?”
Ask: “Should this workflow still depend this much on personal hardware?”
That is the more important question.
If the project keeps getting heavier, if onboarding is awkward, if local setups drift, if testing risky changes feels annoying, or if collaboration keeps bumping into environment issues, that is usually a sign that part of the workflow wants to move into the cloud.
It does not have to be everything. But it should probably be something.
If you want to evaluate that shift through Raff, start with the practical pieces: Linux VMs, the public pricing page, and the ways snapshots, backups, and clean VM provisioning can reduce development friction before production even becomes the main conversation.
That is how I think about cloud VMs now.
Not as a replacement for local machines in every case.
As the better home for more of the work than most teams realize.

