Context Transformation
Context-aware Dendritic Nix
Two Core Principles
Section titled “Two Core Principles”Den builds on flake-aspects’ parametric aspects, and provides a declarative context-pipeline as cutting-points for these aspects.
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.
Den as a Library
Section titled “Den as a Library”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.
Any Nix Class
NixOS, Darwin, Home-Manager, Terraform, NixVim — Den works with anything configurable through Nix.
Context Pipeline
Define custom context types with den.ctx. Declarative
transformations propagate data through your config graph.
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.
Den as a Framework
Section titled “Den as a Framework”Built upon den.lib, Den provides ready-made facilities for the common use-case of OS and User configurations.
Declare Systems
One-liner host and user definitions with freeform schemas. NixOS, Darwin, Home-Manager — all from a single source.
Bidirectional
Hosts configure their users. Users contribute to their hosts. Aspects flow in both directions automatically.
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).