mwlabs
drone ·hardware development

Why MWLabs Runs on NixOS

NixOS lets us set up a laptop, a drone, or a Raspberry Pi the way we want it, then reproduce that setup on any machine with one command. Here is what we use it for at MWLabs.

Why MWLabs Runs on NixOS

NixOS lets us set up a laptop, a drone, or a Raspberry Pi the way we want it, then reproduce that setup on any machine with one command. No manual steps. No scrolling through old shell history to remember what we installed last time. The whole system is written down, versioned, and rebuildable from scratch.

At MWLabs we build reliable systems for clients: autonomous drones, embedded devices, and small web tools. Those systems have to keep working through updates, hardware swaps, and team handovers. NixOS is the substrate we use to make that possible.

Declarative vs imperative

A typical Linux box is managed by hand. You install packages, edit configs, run scripts, and over time nobody remembers what changed or why something stopped working. That is imperative configuration, and it drifts.

NixOS is declarative. You write down what the system should be (packages, settings, services) and Nix builds that state from scratch. The same config produces the same system on every machine. Rollbacks are atomic.

We use this to:

  • Set up embedded boards and Raspberry Pis
  • Keep drone development environments consistent across machines
  • Stop customer-facing tools from breaking between updates
  • Roll back when a deploy goes wrong, in seconds

Per-project dev shells

Every project we work on ships with its own dev environment: embedded C, automation scripts, control software. We clone the repo, run nix develop, and land in a shell with the tools and versions the project needs. Nothing installed globally. Nothing conflicting.

It is like a clean VM per project, but faster, and it stays identical whether you are on a laptop, a CI runner, or a colleague’s machine.

Used in orbit and the field

We are not the only ones running this in production. Anduril runs NixOS on their AI defense drones so the software behaves the same in the field as in the lab. Satellites have launched with NixOS on board, where reproducibility is mission critical. Teams in robotics, finance, and infrastructure use Nix to avoid config drift at scale.

What we get out of it

  • Stable, versioned systems across every piece of hardware we run
  • Atomic rollbacks when a deploy goes sideways
  • Shared environments that any teammate can reproduce
  • Less time on setup, more time on the work

NixOS is how we keep client systems predictable across years of changes.