Environment Setup
Prepare your local machine to contribute to the project. You can configure your environment automatically using Nix (recommended) or manually install the required dependencies.
Automatic Setup (Recommended)
We recommend using devenv and direnv to create an isolated development
environment. This method automatically installs and configures the correct tool
versions when you enter the project directory.
- Set up the Nix package manager and
devenvby following the installation guide. - Install
direnvand hook it into your shell to enable automatic environment switching.
Use Starship to display your active devenv
status directly in your terminal prompt.
Android
The Android SDK, NDK, and emulator system images add over 20 GB to the
environment, so they are not installed by default. You need them to run
yarn sim:android in applications/mobile, or to build the Android client in
applications/clients. To install them, put the following in
devenv.local.yaml:
profile: android
nixpkgs:
allow_unfree: true
nixpkgs.allow_unfree is required because Google distributes parts of the
Android SDK under non-free licenses. To use the profile once without a config
file, run devenv --profile android shell. Building the native Android client
additionally requires a swift.org toolchain with the matching Android SDK
bundle; see applications/clients/CONTRIBUTING.md.
Manual Setup
If you prefer to manage your environment yourself, install the following dependencies globally. You must use the specified versions to avoid compatibility issues.
- Git LFS: Required for handling large media assets.
Make sure to run
git lfs pullin the repo. - Node.js: Version 24.x
- Build Tools:
gcc,ffmpeg,yarn,sqlite