This monorepo includes all the tooling and common libraries used in the various Shipfox projects.
We use Nix, more especially Nix flakes. It is a cross-platform package management tool. Using it you get a consistent environment across development (on both Linux and Mac), CI, and production. To familiarize yourself with Nix, we recommend using the Zero to Nix guide.
Install the Determinate Systems Nix Installer that feature Flakes and macOS upgrade resilience. Use the recommended curl command.
We then use direnv to automatically setup the Nix environment directly in this repository when you navigate with your shell. Follow the direnv setup.
Once setup enable direnv in this repository. Open a new terminal and navigate to this directory.
# This step can be a bit slow as it pulls all the tooling
# However once done, you're ready to go !
direnv allowWe use pnpm as package manager, it is automatically installed by Nix.
Install development dependencies.
pnpm install
We use Turborepo as a task manager for the monorepo. Therefore all commands can be triggered through it.
pnpm turbo {command}
Example: pnpm turbo build
Common commands
build: Builds the packagecheck: Runs linting / style checkingtest: Runs the test suite of the packagetype: Ensures type checking passes and generates type definitions when needed