Welcome to nixspin.
nixspin is a repo dedicated for beginners and intermediate nix & nixos users to gain more ensight on the Nix programming language. This documentation covers all the core areas of the nix programming language along with some exercises to actually learn Nix through practice
- Writing first program, Hello world (covered in ch00)
- Data types (covered in ch01)
- Sets (covered in ch02)
- Lists (covered in ch03)
- Functions - Extended (covered in ch04)
- Lazy Evaluation (covered in ch05)
- Set attribute selection, inheritance and merging (covered in ch06)
- Working with files & paths (covered in ch07)
- Debugging & Tracing (covered in ch08)
- Working with common libraries (covered in ch09)
- Working with Module system utilities (covered in ch10)
- Understanding function signatures (covered in ch11)
- File System Operations
- Lazy Evaluation Patterns
- Debugging Techniques
Future contents & ongoing progress
- Derivation Patterns
- Working with Nix flakes
- NixOS Module System
- Advanced Package Composition
- Performance Optimization
- Real-world Project Templates
Learning Path
focuses on practical understanding over theoretical perfection:
- Learn essential concepts with clear examples
- Build skills progressively
- Avoid common pitfalls
- Learn what you'll actually use
# official docs & other resources
recursive_learning = throw "confusion";
# this repo focuses on
learning_path = lib.foldl (acc: x -> acc + x) 0 [
"clarity"
"examples"
"practicality"
];
You can contibute to the repo for beginners and intermediates to learn actively, you'r contributions matter: If you: Found a bug? Open an Issue Got an idea? Suggest Content Fixed a typo? Submit PR
🔧 Under Active Development
⭐ Star to Show Support - Helps others find this resource
⭐ Star to Show Support - Helps others find this resource