Skip to main content

Who This Guide Is For

Open Source Contributors

Developers who want to contribute by fixing bugs, adding features, or improving documentation

Customizers

Developers who want to modify GAIA for their specific use cases or integrate with custom systems

Prerequisites

  • Docker Desktop or Docker Engine
  • Docker Compose v2+
  • At least 4GB of available RAM
  • 10GB of free disk space
  • Git (for version control)
  • mise (task runner and tool manager)
  • For mobile development: Xcode (iOS) and/or Android Studio (Android)
  • macOS, Linux, or Windows with WSL2
  • At least 8GB of RAM (16GB recommended)
  • SSD storage for better performance

Install mise

mise is required for all GAIA development.
brew install mise

Activate mise

Add mise activation to your shell:
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc
Verify mise is working:
mise doctor

Setup


Development Commands

CommandDescription
mise devStart API + web (recommended)
mise dev:apiAPI server only
mise dev:webWeb app only
mise dev:fullAPI + web + ARQ worker
mise lintLint all code
mise formatFormat all code
mise testRun all tests
See Commands Reference for the complete list.

Project Structure

gaia/
├── apps/
│   ├── api/           # FastAPI backend (Python)
│   ├── web/           # Next.js frontend (TypeScript)
│   ├── desktop/       # Electron desktop app
│   ├── mobile/        # React Native mobile app
│   └── docs/          # Documentation (Mintlify)
├── libs/              # Shared libraries
├── infra/
│   └── docker/        # Docker Compose files
├── config/            # Build configuration
├── mise.toml          # Root task configuration
└── nx.json            # Nx build configuration

Troubleshooting

Ensure mise is installed and activated in your shell:
mise doctor
If not activated, re-run the activation step for your shell.
Check Docker is running: bash docker ps Check for port conflicts:
lsof -i :5432 # PostgreSQL lsof -i :6379 # Redis lsof -i :8000 # API
Ensure .env files exist: bash ls apps/api/.env apps/web/.env If missing, copy from examples: bash cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env
mise manages tool versions. Let it install them:
mise install
Check versions:
mise current

Next Steps