Setup & Development
Prerequisites
- Node.js 22+
- pnpm (enable via Corepack:
corepack enable && corepack prepare pnpm@latest --activate) - Docker Desktop (for PostgreSQL and other services)
- Git
Quick Start
bash
# 1. Clone and install
git clone <repo-url> planner
cd planner
pnpm install
# 2. Start infrastructure (PostgreSQL)
docker compose up -d db
# 3. Configure environment
cp .env.example .env
# Edit .env if needed (defaults work for local Docker)
# 4. Apply database schema
cd apps/backend
npx prisma db push # for local development
cd ../..
# 5. Start all apps in dev mode
pnpm devThis starts:
- Backend at http://localhost:4000
- Frontend at http://localhost:3000
- Website at http://localhost:8080
- Documentation at http://localhost:8081
Environment Variables
Root .env (loaded by all apps)
env
# See .env.example for full list with descriptions
POSTGRES_USER=planner
POSTGRES_PASSWORD=planner
POSTGRES_DB=planner
DATABASE_URL=postgresql://planner:planner@localhost:5432/planner
JWT_SECRET=change-me
REDIS_PASSWORD=planner_redisSecurity: Never commit
.envfiles to version control. Use strong random values for secrets in production (openssl rand -base64 32).
Running Individual Apps
bash
# Backend only
pnpm --filter @planner/backend dev
# Frontend only
pnpm --filter @planner/frontend dev
# Website only
pnpm --filter @planner/website dev
# Docs only
pnpm --filter @planner/docs devUseful Commands
bash
# Type checking
pnpm --filter @planner/backend typecheck
pnpm --filter @planner/frontend typecheck
pnpm --filter @planner/website build # website has typecheck built into build
# Testing
pnpm --filter @planner/backend test # 290 unit tests
# Build
pnpm --filter @planner/backend build
pnpm --filter @planner/frontend build
pnpm --filter @planner/website build
pnpm --filter @planner/docs build
# Linting (entire monorepo)
pnpm lint
# Database schema changes
cd apps/backend
npx prisma db push # Apply schema to dev DB
npx prisma generate # Regenerate Prisma client
npx prisma migrate dev # Create migration (for production)
npx prisma migrate deploy # Apply migrations in productionDocker for Development
bash
# Start all services
docker compose up -d
# Rebuild a specific service
docker compose build --no-cache backend
# View logs
docker compose logs -f backend frontend
# Stop everything
docker compose downProject Scripts
| Script | Description |
|---|---|
pnpm dev | Start all apps in dev mode |
pnpm build | Build all apps |
pnpm lint | Run linter across monorepo |
pnpm format | Format code with Prettier |