Nest Engineering Docs
Guides

Dev environment setup

Set up the local development environment

This guide covers the baseline setup for the monorepo. Service-specific requirements are documented under Services.

Required tooling

Install these locally before working in the repo:

  • Python 3.13 (https://www.python.org/downloads/)
  • Docker Desktop (https://docs.docker.com/get-docker/)
  • Google Cloud SDK / gcloud (https://cloud.google.com/sdk/docs/install)
  • uv (https://docs.astral.sh/uv/)
  • Node.js LTS (https://nodejs.org/)
  • Bun (https://bun.sh/docs/installation)
  • Flutter (https://docs.flutter.dev/get-started/install)
  • Buf CLI + buf.build access (https://buf.build/docs/installation)

Access to buf.build is required for protobuf plugin downloads used by buf generate.

Repository bootstrap

# From repo root
uv sync --all-packages

Environment configuration

Each service reads its own .env file (not committed). At minimum, set:

GCP_PROJECT_ID=...
SPANNER_INSTANCE_ID=...
SPANNER_DATABASE_ID=...

For local credentials, either:

  • gcloud auth application-default login, or
  • export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"

Run a service locally

# Example: handler
uv run --package handler main.py

Docs site (Fumadocs)

cd docs
bun install
bun run dev

Client apps

  • Nest web app: pnpm --dir apps/nest install then pnpm --dir apps/nest dev
  • Raven desktop: flutter pub get then flutter run in apps/raven/

Last updated on