Remote NixOS deploys get dramatically faster when the target host fetches public dependencies from its own substituters and you only push the private bits. The key is `--use-substitutes` and the trusted-user detail most guides skip.
NUR flips the AUR model inside out. Instead of one giant package repo, every maintainer keeps their own repository and NUR indexes the lot. That gives you composability, selective trust, and a much wider ecosystem than most Nix users realize.
A host-centric dotfiles repo is easy to start and easy to outgrow. Here's what improved when I reorganized mine into a Dendritic-style layout around reusable aspects, public vs private modules, and shared inventory — plus the tradeoffs in indirection, naming, and boilerplate.
One flake can handle both NixOS and plain Debian or Ubuntu deploys. Here's a practical pattern for embedding a full legacy deployment workflow into flake apps: setup, install, build, systemd user units, database dumps, REPL shells, and shell aliases.