it's basically a declarative way of writing up machine configuration, including every package that you download/install
as others have mentioned the startup/learning curve is really steep but once you've got a working machine config you've basically documented how to completely setup your machine -- makes it really easy to try new things and roll back!