---
title: "ShipIt! Presents: How Shopify Uses Nix"
description: "At a May 25, 2020 ShipIt! event, Shopify presented how it uses Nix to rebuild developer tooling and demonstrate the tools used day to day. The follow-up answers questions about runix and lorri interoperability, CI/CD, Ketos, remote-work download costs, dependency management, and pinned nixpkgs revisions. Shopify says its tooling is optimized for build workflows rather than development, so it spent substantial effort adapting bundleEnv/bundleApp to its preferred workflow and hopes to upstream the solution. Nix is not yet used for CI/CD; gems prompted the initial Nix work, while Node modules are not yet managed with Nix, and a project-specific nixpkgs revision is enforced whenever dev up runs."
---

# ShipIt! Presents: How Shopify Uses Nix

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · May 29, 2020

**Type:** Explainer

## Summary

At a May 25, 2020 ShipIt! event, Shopify presented how it uses Nix to rebuild developer tooling and demonstrate the tools used day to day. The follow-up answers questions about runix and lorri interoperability, CI/CD, Ketos, remote-work download costs, dependency management, and pinned nixpkgs revisions. Shopify says its tooling is optimized for build workflows rather than development, so it spent substantial effort adapting bundleEnv/bundleApp to its preferred workflow and hopes to upstream the solution. Nix is not yet used for CI/CD; gems prompted the initial Nix work, while Node modules are not yet managed with Nix, and a project-specific nixpkgs revision is enforced whenever dev up runs.

## Context

Shopify was rebuilding its developer tooling with Nix and addressing the mismatch between Nix's build-oriented tooling and its development workflow.

## Approach / What changed

The tooling pins a specific nixpkgs revision enforced whenever dev up runs and adapts bundleEnv and bundleApp to Shopify's development workflow. Gem dependencies were addressed before Node modules, which are not yet managed with Nix.

## Takeaways

- runix and lorri might interoperate, but Shopify said compatibility would not be effortless because its shadowenv strategy is similar but different.
- The Lisp-like code shown uses Ketos, a small Rust implementation; Shopify treats it as a DSL with few documented functions.
- After leaving offices with multi-Gigabit fiber, Shopify saw more complaints about large downloads when updating its nixpkgs revision for remote workers.

**Tags:** [Developer Experience](https://yomu.fyi/topic/developer-experience), [Nix](https://yomu.fyi/topic/nix)

- Source: [Shopify](https://shopify.engineering/shipit-presents-how-shopify-uses-nix)
- Source URL: https://shopify.engineering/shipit-presents-how-shopify-uses-nix
- Ingested by Yomu: 2026-08-31T01:12:35.965Z

[Read original post](https://shopify.engineering/shipit-presents-how-shopify-uses-nix)
