Nix Flakes: Packages and How to Use Them
A package is a bundle of files. These files could be program executables, resources such as stylesheets or images, or even a container image. Most of the time you don't deal with packages directly and instead you use a *package manager* (a program whose sole goal in life is to deal with packages) to do actions for you. This post is going to cover how to define packages in Nix and how Nix flakes let you manage multiple packages per project more easily.
Source: Nix Flakes: Packages and How to Use Them, an article by Christine Dodrill.