Local development setup
I spent some time experimenting with the ideal setup to consolidate all my projects in one location. Here’s my journey...
Local development environment
Going back to 2005–2008, WAMP, LAMP, and MAMP were the easiest and most cost-effective options for developing websites locally. GitHub, founded in 2008, wasn’t even around yet. The world was different—no iPhones, tablets were scarce, and laptops were slower and heavier. In fact, I was a proud owner of a G5 iMac back then. A local server was ideal for working on small projects. But times have changed, and today, access to files from any machine, anywhere, is essential.
My G5 PowerPC Mac, 2008 (when OSX was great)
Synology Diskstation
A few years later, Synology released DiskStation, the best solution for backups and media. However, development work demands more power. My DS was a bit slow, with limited RAM and Marvell CPUs. Despite good energy efficiency (~15W when hard drives are in use) and excellent storage capacity, my older model with only 512MB of RAM wasn’t suitable. However, newer DiskStations with expandable RAM and powerful Intel processors make them great options for local development.
Docker containers
Docker is a fantastic tool for maintaining identical development environments across machines, making onboarding new developers a breeze and saving a lot of time. A newer DS with 10GB of RAM, capable of handling multiple Docker containers, was an option. But a fully upgraded DS is similarly priced to a small server, so I decided to test alternatives.
Raspberry Pi
When the 4th generation of Raspberry Pi was released, I thought it was the perfect solution for my needs—powerful, with plenty of RAM, energy-efficient, quiet, and affordable. Confident, I bought two! However, its CPU architecture presents challenges; some tools require specific tweaks, though the active Raspberry Pi community offers excellent resources. I tested several Linux distributions, ultimately settling on Ubuntu Server. If energy efficiency is a priority, the Pi is unbeatable, consuming between 4W and 8W, or about 50 kWh per year when powered on 24/7.
Still, it wasn’t perfect. Although it checked many boxes—power, memory, and efficiency—the different CPU architecture made it challenging to move projects to staging or production environments, resulting in testing issues. It was slow to boot, and tasks like npm install were slower than on desktops. Limited to 4GB of non-expandable RAM, adding more power would mean buying another Pi. Fast SSDs also lost speed when attached to USB3 ports. Eventually, I realized it was time to invest a bit more to find the perfect solution.
Intel NUC
Now, my current setup is a small but mighty 8th Gen Intel NUC with an i5 6-core processor, 8GB of RAM, and both SSD and NVMe drives. It’s the fastest, most expandable (with a USB-C port!) option, but also the most expensive. Intel architecture reduces installation issues, Ubuntu 20 works flawlessly, and pm2 manages multiple processes without problems. The NUC is quiet, energy-efficient, and versatile, easily serving as a media hub or backup device. I can work remotely from my laptop, desktop, or even iPad, with quick QA in different operating systems. Though VirtualBox can achieve similar results, some web apps I maintain work better outside a VM environment. With RAM expandable to 32GB or even 64GB, the NUC has plenty of future potential.
Future
I’m very pleased with my current setup—everything runs smoothly, it’s resourceful, energy-efficient, and quiet. It allows remote work but is also portable if remote access isn’t an option. This setup is perfect for my needs now, but I thought the same about past setups. It’s ideal with today’s technology, but who knows? I’m excited to see what comes next.