Sal's

My remote-development workflow

You are viewing a note. This page may change often.

I use VSCode and my homelab to enable remote development on the following projects:

I do this so I can work on these projects from my work laptop, since that is so often the computer I have with me, and I want to keep it clean from any of my personal work.

Benefits

As I lean into remote development, I’m noticing a few benefits.

Less provisioning and syncing

When I develop remotely, I need only one machine provisioned with all my config files, CLI tools, etc.

Previously, I’d been aggressively keeping configs and software in sync between my various machines. Now, the other computers act as thin clients. I mostly just need VSCode, my SSH config, and … that’s about it.

Pick up where I leave off

Let’s say I’m working locally, it’s time to stop, and I don’t know which computer I’ll be using next (personal laptop, work laptop, or desktop). In that scenario, I want to make sure I commit and push my changes before I leave so that I can pull them from wherever I’m working next.

I contrast, when working remotely, I can just save my file and walk away. Whichever computer I’m using next will be connecting to the same server and files. That’s pretty nice.

Fewer local resources needed

When running VSCode’s Remote SSH extension, VSCode does most of its heavy lifting through a headless server running on the remote SSH host. That lifting includes LSPs, extensions, debuggers, whatever I run in the my terminals (like the 11ty debug server), etc.

Gemini tells me that using VSCode’s remote SSH reduces local CPU consumption by 70-95% and memory consumption by 40-70%. I have done absolutely nothing to verify those numbers, but they sound cool.

This should mean that my laptops do less, can be less powerful, and enjoy longer battery life.

All the bandwidth

I was just in a car on the way to the airport, hacking on a blog post remotely, connected to my homelab via my phone’s hotspot. I did an npm install of some package and later deployed my blog with wrangler, which works basically like rsync.

I realized, if I were doing this development on my laptop, those operations would be slow and unreliable over my phone’s cell connection — not to mention putting a dent in my data plan’s quota. But because the commands are running on my homelab, they get to use my bountiful gigabit fiber connection.

That’s nice!

#Remote-Dev