skip to the main content
2025-05-08

Web devs on windows....

… consider developing on a server.

My reasoning

  • Having a proper shell. I have tried really hard to make the windows replacements work, but WSL is too slow, the microsoft drop ins for scp etc. are too incomplete, and using cygwin is also messy.
  • Making WIP commits every time i change machines and then squashing them later seems a bit tedious and unnecessary

How

Prereq

  • Set up an ssh config for your host. (If you have never done this, check the vscode section to have the extension do it for you, simplest.). In this example, the hosts config name is myhost.
  • Don’t have the servers’ ports open to the internet. We will forward them.
  • Set up git authentication on the server

Neovim Version

  • Use ssh -L 1234:127.0.0.1:1234 myhost (ssh tunnel) in a terminal other than the one where your neovim is running
  • http://localhost:1234 should work now.
  • Adjust 1234 to be the port of your app running on server obviously. There is also an ssh flag to make it block, open a tunnel, but not open a remote shell, and stuff like that. It’s surprisingly nice.
  • Happy coding!

Vscode/Cursor version

  • Search for ssh in the extension store, there is versions for vscodium that work too
  • Install that stuff
  • Click somewhere on the left pane to connect to remote hosts
  • You may have to set up an ssh config for that host, punch in the login user and hostname once, in the future you can get here much faster
  • Make sure your extensions are installed and enabled on the remote host, this is a bit annoying sometimes.
  • Vscode should automatically forward ports that are opened on the server while it is running
  • Happy coding!