Updated: 06 November 2025
Flakes
- Flakes are experimental but recommended.
- A flake reference is a string representation of where the flake is located.
- A Nix flake is a directory with a
flake.nixandflake.lockat the root. - Flakes take Nix expressions as input.
- Flakes can use the outputs of other flakes as inputs.
- Flake outputs are defined by a function.
- Flakes can have multiple simultaneous outputs.
- The output of a flake is a Nix expression.
A flake output can be used to:
- Build Nix packages.
- Run programs.
- Create development environments.
- Launch NixOS systems.
See here for more details.
Home manager
https://github.com/nix-community/home-manager
Nix Shell
Start a nix shell which includes PHP 8.4
nix --extra-experimental-features "nix-command flakes" shell nixpkgs#php84