I moved my dev loop to a Linux box and my side projects stopped dying
It was 1 a.m. I had been waiting 40 minutes for a data import to finish when my laptop decided it was time to install updates and restart. The import was gone. The tmux session was gone. The fragile chain of SSH tunnels, background compiles, and a half written test suite evaporated because I forgot to nohup one command.
That night I moved the core of my development loop to a resident Linux shell. Nothing I work on now depends on my laptop staying awake or my Wi-Fi staying connected. My builds, long running scrapers, and always on IRC bouncer live on a small remote box that does not sleep.
If you treat your local machine as the center of your developer universe, this post is about why that habit quietly wastes time and how a persistent shell can fix it.
The fragile dev loop most of us live with
A typical side project workflow looks like this: you open a terminal, cd into a repo, maybe fire up a database in Docker, start a watcher, run some tests, then close the lid at the end of the day. You are one accidental reboot, one brew upgrade gone wrong, or one forgotten tmux detach away from losing state.
The local machine is a terrible long running host. It sleeps. It moves between networks. It runs resource hungry browsers that will OOM your database container while you have 47 tabs open. Your dev loop is fragile because its runtime is tied to a device that was never meant to act as a server.
Even when I used tools like tmux or screen religiously, the sessions still died with the machine. I could push code to a VPS and pull it back later, but that still meant my active state, running processes, and intermediate results lived on my laptop. Every lid close was a context switch that cost momentum.
What a resident shell actually gives you
A resident shell is a Linux environment that stays up 24/7. It is not your local terminal multiplexed to a remote host; it is the home for your tools. You SSH in, attach to a tmux session that has been alive for weeks, and keep working exactly where you left off. The host runs even when your laptop is in your backpack.
The practical upsides are immediate.
- Background tasks survive. That 3 hour dataset download does not care if your Mac goes to sleep. A resident shell runs it to completion. You can detach, close your laptop, and check the result in the morning.
- Scheduled jobs become trivial. Need a cron job that pulls GitHub issues every night? A simple crontab entry on the remote box does it. No need to keep a machine awake at home or wrestle with launchd.
- Testing becomes decoupled. I keep an always on test runner that watches a branch. Every push triggers a full suite on the remote host, and I get a notification on IRC (via my bouncer, also on the same box) whether I am online or not.
- One environment, everywhere. I can SSH from a Chromebook, a phone with an SSH client, or a random desktop and pick up right where I left off. No "works on my machine" surprises because the machine is the same.
None of this requires heavy infrastructure. A small VPS with 1 or 2 GB of RAM is plenty. I have been using xShellz for years because it gives me a full Linux shell with persistent storage, an IRC bouncer, and an AI coding agent (borg) that I can hand off long compiles or code reviews to while I sleep. But you can achieve the same core benefit with a $6 a month VPS and a few minutes of setup.
Real workflows that get better
Once you accept that your laptop is a thin client and the shell is your real workspace, a handful of workflows become natural.
Always on IRC and notifications. I run ZNC as a bouncer on the remote host. When I connect from any client, I get full scrollback. I also pipe CI failures and background job status into a channel only I can see. It is like a poor man's PagerDuty for side projects.
Long running data pipelines. I have a scraper that pulls API data every 6 hours and dumps it into a SQLite database on the box. The script is a 40 line Python file inside a tmux window that has been running for 3 weeks. I can attach, check its log buffer, edit the script with vim, and restart it without downloading gigabytes of data to my laptop.
Hands off code assistance. xShellz includes borg, a terminal native AI agent that can read my entire project tree, run builds, and suggest fixes. When I go to bed, I can ask borg to run the test suite, identify failures, and prepare suggested patches in a branch. I wake up to a diff review, not a pile of red CI emails.
Compile farms for slow builds. If a project requires a heavy C++ or Rust build, I kick it off on the remote shell, go run errands, and check in later from my phone. The compilation does not compete with Chrome for RAM.
Setting it up without overcomplicating things
You do not need Kubernetes or a complex remote development setup. Here is the minimal path that has worked for me.
- Get a small Linux host. It could be a cheap VPS (DigitalOcean, Hetzner, Linode) or a managed shell service. The key requirement is disk persistence and the ability to install packages.
- Set up SSH keys and disable password auth. Optionally, install
moshfor better roaming. - Install tmux. Create a session called
mainthat you reattach to every time you connect:
tmux new-session -s main
# later...
tmux attach -t main
- Move your project repos there. Clone them into
~/projects/and work directly on the host. Keep your dotfiles in a repo so you can replicate the environment quickly. - Set up a few cron entries for recurring work. A simple
crontab -eline like0 2 * * * cd ~/projects/scraper && ./run.shis often all you need.
That is it. Your development environment is now a persistent, always on Linux shell.
The mental shift
The biggest change was not technical. It was learning to treat my laptop as a terminal, not as the runtime. When I close the lid now, nothing stops. My builds keep building. My scrapers keep scraping. My code keeps getting reviewed. The side project no longer depends on my presence.
If you have ever lost an afternoon to a lid close or a spotty Wi-Fi disconnection, moving your dev loop to a resident shell is the cheapest productivity boost you will get this year.