CI/CD has a “missing primitive”: toolchain + OS-level dependency management. We treat deps as “npm/pip/maven”, but then glue the real environment together with Homebrew/apt-get and end up with Bash embedded in YAML.
This issue argues that’s how you get commit-driven development: the only place the full environment exists is CI, so the feedback loop becomes commit → push → wait → read logs → repeat.
The piece maps the spectrum from asdf/mise (version pinning) → Devbox (shared dev shell + runnable tasks) → Nix (declarative, reproducible build graph), with a practical thesis: if you make the environment a first-class artifact, “local-first, reproducible pipelines” stop being aspirational and start being achievable. Includes a scorecard and concrete examples of flake-based CI patterns.
jotafi•2h ago
This issue argues that’s how you get commit-driven development: the only place the full environment exists is CI, so the feedback loop becomes commit → push → wait → read logs → repeat.
The piece maps the spectrum from asdf/mise (version pinning) → Devbox (shared dev shell + runnable tasks) → Nix (declarative, reproducible build graph), with a practical thesis: if you make the environment a first-class artifact, “local-first, reproducible pipelines” stop being aspirational and start being achievable. Includes a scorecard and concrete examples of flake-based CI patterns.