A fast, declarative, and reproducible developer environment tool built on Nix for consistent project setups.
devenv is a tool for creating fast, declarative, and reproducible developer environments using Nix. It provides a consistent setup for projects by managing languages, packages, services, and processes through a simple configuration file, eliminating environment inconsistencies across teams and machines.
Developers and teams working on projects that require consistent environments across different operating systems, especially those using Nix or seeking reproducible builds.
Developers choose devenv for its speed, ease of use, and comprehensive feature set—offering instant environments, a built-in process manager, and seamless integration with Nixpkgs without deep Nix expertise.
Fast, Declarative, Reproducible, and Composable Developer Environments using Nix
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages incremental Nix evaluation caching to activate environments in under 100ms when nothing has changed, significantly speeding up developer workflow compared to traditional setups.
Supports over 50 languages with built-in tooling and 40+ services like PostgreSQL and Redis, reducing manual setup time for complex, multi-service projects.
Includes a native process manager written in Rust with dependency ordering, automatic port allocation, and readiness probes, simplifying local service management without external tools.
Allows building containers directly from the environment without Docker, leveraging Nix's reproducibility for consistent container images, as highlighted in the container feature documentation.
Requires Nix to be installed and configured, which can be a significant barrier for teams unfamiliar with Nix's concepts and ecosystem, despite devenv's simplification efforts.
While the Terminal UI and LSP help, the devenv.nix configuration can become intricate for large projects, and understanding Nix expressions is necessary for advanced customizations beyond basic options.
Tightly coupled with Nixpkgs; if a required package or version isn't available, integration becomes challenging and may require manual overrides or inputs management, adding complexity.