Skip to content

Context-aware Dendritic Nix

Context-driven, aspect-oriented, cross-class Nix configurations

Den builds on flake-aspectsparametric aspects, and provides a declarative context-pipeline as cutting-points for these aspects.

Context Transformation

Data flows through a declarative pipeline of contexts. Each stage enriches the context — from host definitions through user enumeration to domain-specific requirements.

Context-Aware Aspects

Aspects are composable bundles of cross-class Nix configs. They inspect context to produce conditional, parametric configurations — and are activated by a matching context.

All parts of Den are optional, re-usable and replaceable. Even the default NixOS configuration pipeline is opt-in, and you can use Den lib to configure anything supporting Nix modules.

No Lock-in

Works with flakes, without flakes, with flake-parts, or standalone. Den plays well with your existing Nix choices. And integrates with your existing infra.

Sharable Aspects

Re-usablity is one of the goals of Den. Allowing people to create truly-generic configuration modules. Namespaces let you publish and consume aspect libraries across repositories and flakes.

Built upon den.lib, Den provides ready-made facilities for the common use-case of OS and User configurations.

Batteries Included

Opt-in aspects for common tasks: define-user, primary-user, user-shell, unfree packages, import-tree, and more.

Community

Share configurations through namespaces. Real-world setups and a growing ecosystem at denful (wip).