I wrote a while back about switching to Bluefin OS and why I think immutable OSs are the future. Bluefin is a derivative of Fedora Silverblue, but it comes prebundled with proprietary drivers and the extra tools that make life easier. The core system files are read-only, so apps live in isolated containers instead of the system’s guts. It’s nearly impossible to break and trivial to update or roll back.
The trade-off is that “installing software” becomes a bigger task than on “normal” OSs; everything needs to be installed into a container of some sort (Distrobox or Podman).
The problem
Before the fatbox, I had a small Podman or Distrobox setup for each app. A PHP box, a Go box, a Node box, one for ffmpeg, one for ImageMagick, on and on. Each one needed its own configuration, and I spent more time tinkering with settings than I would have liked.
Worse, most of these tools were also needed inside my web development environment. So I ended up running the same apps twice on the same machine — once for general use, once for dev — and configuring them twice. That got old fast.
The fatbox
So I built one giant container. A single Ubuntu 24.04 Podman container, run via Distrobox, with the entire dev toolchain and web stack inside it along with many everyday tools I find useful. One container, everything in it.
Distrobox makes this a lot easier. It shares my home directory with the host, and I’ve set up a command-not-found fallback: if I type a command on my host machine and it isn’t found there, bash automatically passes it inside the fatbox. So anything I install within the Ubuntu container becomes available on my host immediately. No exporting, no wrappers, no second config. I install something once, and it just works everywhere. All the time I used to spend configuring each individual container is now gone!
Coding harness
I run a coding harness, in my case OpenCode. I keep an instance running on the host itself for the rare occasion I need it to look at my host OS, which is handy for debugging. But usually I just type ai, which opens up a separate OpenCode instance inside the Ubuntu box.
Running the harness inside the fatbox means it can install new software whenever it needs to (not generally possible on an immutable OS like Bluefin). Before, the harness ran either on the host or in its own container, and anything it installed was stuck in a separate container that neither my web development environment nor my host machine could reach. This was annoying, because often the software it installed was stuff I needed to access myself. So I’d end up installing it all over again anyway. The fatbox avoids that problem entirely, since I’m almost always running the harness inside the same Ubuntu container as everything else.
Why didn’t I do this originally?
The standard advice I’ve seen for handling containerised workflows, is to separate everything so that if one app has problems, it doesn’t interfere with the others. Whenever I asked an LLM for advice on how to configure stuff, it always told me to install apps separately (and still does). But actual day to day use has told me this is a terrible approach. Just installing something like FFMPEG meant that I needed to install it on my web dev container so that the web server could access it, inside its own container, and then I needed to configure it so that I could use it via the regular FFMPEG commands on my own host, and invariably I missed some random command I wasn’t aware came with the FFMPEG system until I read somewhere about it, and then had to spend 5 mins mucking around configuring it. With the fatbox system, all those problems go away. I’m so far really happy with it.
I eventually started to consider switching away from an immutable OS and to install a more traditional OS like Fedora, but this Fatbox system has allowed me to keep the immutable setup I like (I feel it’s the future of OSs) while maintaining the ease of use of a traditional OS.
Conclusion
One container to rule them all. Less tinkering, no duplicated configuration, and my whole development environment moves between computers with me. Fatbox is one of the best changes I’ve made to my immutable OS setup.