| trigger | description |
|---|---|
model_decision |
when working for building, running, or deploying the project |
Ensure you have mise installed for runtime management.
# Install all runtimes
mise install
# Verify versions
mise currentThis project uses mise monorepo mode with //path:task syntax.
# List all available tasks
mise tasks --all
# Start all services
mise dev
# Lint all apps
mise lint
# Format all apps
mise format
# Test all apps
mise test
# Type check all apps
mise typecheck
# Build i18n files
mise i18n:build
# Generate OpenAPI schema and API clients
mise gen:api# Start development server
mise //apps/api:dev
# Run tests
mise //apps/api:test
# Lint
mise //apps/api:lint
# Format
mise //apps/api:format
# Type check
mise //apps/api:typecheck
# Run DB migrations
mise //apps/api:migrate
# Create new migration
mise //apps/api:migrate:create
# Generate OpenAPI schema
mise //apps/api:gen:openapi
# Start local infrastructure (PostgreSQL, Redis, MinIO)
mise //apps/api:infra:up
# Stop local infrastructure
mise //apps/api:infra:down
# Build Docker image
docker build -t api apps/api# Start development server
mise //apps/web:dev
# Production build
mise //apps/web:build
# Run tests
mise //apps/web:test
# Lint
mise //apps/web:lint
# Format
mise //apps/web:format
# Type check
mise //apps/web:typecheck
# Generate API client from OpenAPI
mise //apps/web:gen:api
# Build Docker image
docker build -t web apps/web# Start worker
mise //apps/worker:dev
# Run tests
mise //apps/worker:test
# Lint
mise //apps/worker:lint
# Format
mise //apps/worker:format
# Build Docker image
docker build -t worker apps/worker# Run on device/simulator
mise //apps/mobile:dev
# Build
mise //apps/mobile:build
# Run tests
mise //apps/mobile:test
# Analyze (lint)
mise //apps/mobile:lint
# Format
mise //apps/mobile:format
# Generate localizations
mise //apps/mobile:gen:l10n
# Generate API client from OpenAPI
mise //apps/mobile:gen:apicd apps/mobile
# Install Ruby dependencies
bundle install
# Android
bundle exec fastlane android build # Build APK
bundle exec fastlane android firebase # Deploy to Firebase App Distribution
# iOS
bundle exec fastlane ios build # Build iOS (no codesign)
bundle exec fastlane ios testflight_deploy # Deploy to TestFlight# Initialize Terraform
mise //apps/infra:init
# Preview changes
mise //apps/infra:plan
# Apply changes
mise //apps/infra:apply
# Preview production changes
mise //apps/infra:plan:prod
# Apply production changes
mise //apps/infra:apply:prod# Build i18n files for web and mobile
mise //packages/i18n:build
# Build for web only
mise //packages/i18n:build:web
# Build for mobile only
mise //packages/i18n:build:mobilemise //apps/api:infra:upThis starts:
- PostgreSQL (port 5432)
- Redis (port 6379)
- MinIO (ports 9000, 9001)
mise //apps/api:infra:downdocker compose -f apps/api/docker-compose.infra.yml down -vmise //apps/api:migrate:create "description of changes"mise //apps/api:migratecd apps/api
uv run alembic downgrade -1# Ensure virtual environment is activated
cd apps/api
uv sync --frozen# Clear node_modules and reinstall
rm -rf node_modules pnpm-lock.yaml
pnpm install# Clean and rebuild
flutter clean
flutter pub get
dart run build_runner build --delete-conflicting-outputscd apps/infra
# Refresh state from cloud
terraform refresh -var-file="terraform.tfvars"
# Import existing resource
terraform import -var-file="terraform.tfvars" google_storage_bucket.uploads your-bucket-name