20 comments

[ 3.4 ms ] story [ 47.2 ms ] thread
I’m about 18mos into managing my macOS hardware with Nix. And I’m conflicted. It’s clearly a powerful system, and I’m still very noob at it. It’s not clear to me that it’s the right solution for macOS. I’ve not felt comfortable enough with it to roll it to Linux hosts yet. Or use its docker image maker.

Consistently through the 25.05 period nix-darwin and nixpkgs would fall out of sync. I learned not to `nix flake update` too often as a result. It’s amazing that rolling back is as easy as it is, and that’s huge, but if you squint and reason that mise and nix solve the same issue, why not use the less opinionated, easier to reason about mise?

As time has gone on, more and more of my system is managed via nix-homebrew … effectively producing a Brewfile for the vast majority of my package needs. Why not just use Brewfile directly?

I really want to advocate for nix, but it feels like I lose the “why not x?” conversations with myself, I can’t fathom winning them against a less invested peer.

I very much do not recommend nix-darwin.

I do very much recommend home-manager, which will manage your dot-files and cli packages, and is portable between macOS and Linux.

Have been down this path and just realised: I get the same result and a lot less of a hassle by just using bash scripts and brewfile etc.

Making a change with home manager became a whole thing.

Now I’m back on the happy path and it’s great. The LLMs can also move things over very fast.

My remaining uses of nix are just devbox which is a very palatable wrapper and nicer to use than flakes.

Reading the NixOS release notes every 6 months is how I learn about new software that I might want to try: https://nixos.org/manual/nixos/stable/release-notes#sec-rele...

For my first few years of NixOS I didn't understand the point of the NixOS stable releases, since even on "nixos-unstable" I found that if my nix config evaluates, then it'll work. And in the very rare case things broke, I could easily rollback.

NixOS stable, for me, provides API stability. I can leave a machine auto-updating, and be confident that my nix config will continue to be compatible, and thus build.

Thanks to the release managers for the work that goes into this!

Does anyone have a good resource for a quickstart/high-level overview of just the terminology required to understand Nix? Flakes/overlays/nixpkgs/etc. I start wading in to try and understand it, and instead run into arguments and disagreements.

Unfortunately, without a base level understanding of the entire ecosystem, I stay lost.

This article and video might be good for you, but they are more about a conceptual overview of what the fundamental parts of Nix are and how they interact.

https://shopify.engineering/shipit-presents-how-shopify-uses...

https://www.youtube.com/watch?v=6iVXaqUfHi4

Flakes are a dependency-pinning and hermetic evaluation feature baked into the Nix tool itself.

Overlays are an idiom that uses lazy evaluation to build up larger attribute sets in a modular and composable way (e.g., package collections for a particular programming language).

yeah, the "entry-level" documentation is definitely one of the weak points of the Nix ecosystem. I'd compare it to trying to learn how to do oil changes on your car and only finding "car guy" web forums full of posts about transmission rebuilds and 3D printing your own carburetors.

my recommendation (as I said elsewhere in this thread, I'm a 10+ year NixOS user) would be to install NixOS on a VM or spare laptop and tinker with configuring it. you can follow the breadcrumbs, for example enabling sshd [0] has a "declared in" link to [1] where you can read the Nix source code of what that NixOS option actually does on your system.

flakes, modules, and overlays are all relatively "advanced" parts of the ecosystem, you don't need to know them as a new user. in particular, you will find many blog posts telling you to use flakes right from the beginning. that's an option, but not at all required.

0: https://search.nixos.org/options?channel=25.11&show=services...

1: https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modu...

You don't need flakes or some fundamental understanding for a quick start. I simply add programs that I use to configuration.nix. This covers 95% of my use cases. For everything else I use containers. This may be not the nix way, but works super reliably and without much trouble.
For certain people i think "entry level" for nix means trying to re-read tutorials every couple of years and it never ever feeling comfortable or memorable... but somehow it still itches in the back of your mind that this is how things are suppose to be done. But why is it so... different?
No, but I can empathize. I never understood the Nix language. It's impenetrable to me. I hate it so much.

I keep checking back every year or so secretly hoping they'll have upgraded the language. It's fascinating how successful Nix is given how utterly opaque the language is.

This will be another upgrade for my dev machine running NixOS since 17.something times. Thanks to all maintaines and release managers over the years for such solid work!
> Added nixos-init, a Rust-based bashless initialization system for systemd initrd

Rust is such a heavy dependency though, is it not? Is it worth it? Additionally, what does it add as a new project / software (disregard Rust here)? What was wrong with the previous one and/or what does this fix or add that justifies adding a heavy dependency? Seems like most of these projects are written in Rust though.

I've been using Nix and NixOS for about 5 or 6 years now, extremely thankful for the project. It was my gateway to open source and Linux, and has been pivotal to my career (I work on internal developer experience and environments + CI infrastructure).

It's certainly not for everyone, but for anyone who's full time job involves managing runtime environments it is second to none.

> The old release 25.05 “Warbler” is now officially deprecated and will reach its end-of-life and stop receiving security updates after 2025-12-31.

What, one month to upgrade to keep receiving security updates? How can you force 1-month upgrade windows every 6 months and who would go for that?

NixOS is the only distro that may tempt me away from Slackware one day.
I am excited for having a new version of NixOS. Few days ago I realized that November is almost gone and went looking for when I can expect the new release. And right on schedule it popped out (was checking throughout the day). Big props to the release managers (and of course the maintainers)

I use nix via flakes on my own machines (via NixOS), in my projects (with direnv), on my infrastructure/servers (NixOS deploying with colmena) and at work (nix-darwin and projects). So far the upgrade have gone painlessly, the only change I needed to make is how git is configured in home manager. I continue to be amazed how well NixOS works.

Edit: The only place I still struggle in adopting nix is on my phone. Last time I tried nix-on-droid it didn't even run, but I plan to try that again. Still new to Android (and GrapheneOS)

The only linux distro where I've never experienced disruption whatsoever when a new version comes in. A testament to the validity of the approach they are using (immutability). They also have a simple way to package things, and this produced the largest repository of packages of any linux distro. If something works, it stays working, breakage after updating is unheard of. The unofficial motto is "nixos fixes that."