I work on side projects almost all the time. Not like all the time, but I mean I always have some side thing going on.

I have tried different things during all these years, but what ended up working for me after trying half a dozen setups is basically a laptop as my frontend and a server as the engine. Specifically:

  • Laptop with IDE on the frontend. Currently, I use a 16’’ MacBook Pro. I tried a super light laptop such as the Google Pixelbook. Not enough. I feel something more powerful gives me a more pleasant experience. But still, I don’t need the biggest one. IDE: VS Code.
  • A Debian workstation. Currently an AMD Ryzen 9 3900X with 64 GB of RAM, a Radeon RX GPU, 2 1TB NVMe, and 1 magnetic 1 TB disk.

The server is probably 4 years old. It works like a charm. My only problem is the GPU; I can’t use it as I want to for modeling (or not easily as an NVIDIA), but in 2025 I think I am good, I won’t train my LLMs anyway.

Now, my next thing is how I compartmentalize my server for my projects. I have also tried different things here, but what works better for me is LXC containers: persistent and low level. This is exactly what I need. I want something I can abuse as much as I want; when they stop working throw them away and start with a fresh new one. As if I was buying new laptops every 3 or 4 months. That is my way of working. I don’t want to think what system libraries I am installing, just do it. I usually have one that I use as my main development environment and then I throw in some specific ones for some projects such as a DB server or whatever I need.

For this last step, I have created this:

A UI to manage LXC containers.

Basically, it handles everything in my host machine to create, backup, and network setup. This is all.