Skip to main content
Back to blog

Why I use Linux for web development

·3 min readLinux

I have used both Windows and Linux for web development, and I keep coming back to Linux. This is not a religious argument about operating systems. It is a practical one about which environment creates less friction when you are building web software.

The deployment target argument

Most web applications deploy to Linux servers. When your development environment matches your production environment, an entire category of bugs disappears. Path separators, file permissions, case sensitivity, line endings, shell scripts that work on your machine but break in CI. All of these are non-issues when you develop on the same OS family you deploy to.

Package management actually works

Linux package managers are genuinely good. apt, pacman, dnf, whatever your distribution uses, they handle system-level dependencies cleanly. Need to install PostgreSQL, Redis, or nginx for local development? One command. On Windows, you are often downloading installers, configuring PATH variables manually, and dealing with services that behave differently than they would in production.

Docker runs natively

Docker on Linux is just Docker. It runs natively, shares the host kernel, and performs exactly like it does in production. Docker on Windows runs inside a VM (WSL2), which adds a layer of complexity and occasional weirdness with file system performance and networking.

The terminal is first class

The Linux terminal is not an afterthought. Your shell, your tools, your scripts, everything is a first-class citizen. Piping commands, writing shell scripts, using tools like grep, sed, awk, jq. These work exactly as documented because the documentation was written for this environment.

WSL2 has gotten a lot better, and it is a reasonable alternative if you need to stay on Windows. But it is still a compatibility layer. You are running Linux inside Windows, which adds complexity that would not exist if you just ran Linux directly.

File system performance

Linux file systems (ext4, btrfs) are fast for the kind of workloads web development creates: lots of small files, frequent reads and writes, node_modules directories with thousands of files. I have noticed meaningful differences in build times and hot reload speeds compared to NTFS on Windows.

It is not all perfect

I will be honest about the downsides. Hardware support can be annoying, especially for newer laptops. Some commercial software does not have Linux versions. And the initial setup requires more effort than Windows or macOS.

But for web development specifically, the advantages outweigh the setup cost. Once your environment is dialed in, it stays out of your way and lets you focus on building.

Sources

Enjoying the blog? Subscribe via RSS to get new posts in your reader.

Subscribe via RSS