# dwellops-platform Modern HOA management platform — TypeScript monorepo. Supports self-hosted single-tenant deployments and is architecturally ready for SaaS multi-tenant evolution. ## Stack | Layer | Technology | | ------------------- | ---------------------------------------------- | | Package manager | pnpm workspaces + catalog | | Build orchestration | Turborepo | | Frontend | Next.js 16, App Router, CSS Modules, next-intl | | Backend | Fastify 5, Zod, Better Auth | | Database | PostgreSQL + Prisma | | Testing | Vitest, Playwright, Testing Library | | Storybook | v10 (Vite builder) | ## Quick start ```bash # Prerequisites: Node 24+, pnpm 10+, Docker # 1. Copy environment files cp .env.example .env cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env # 2. Start local infrastructure docker compose up -d # 3. Install dependencies pnpm install # 4. Generate Prisma client and run migrations pnpm db:generate pnpm db:migrate:dev # 5. Start dev servers pnpm dev ``` **Apps:** - Web: http://localhost:3000 - API: http://localhost:3001 - API docs (Swagger): http://localhost:3001/documentation - Mailpit (local email): http://localhost:8025 ## Scripts | Command | Description | | --------------------- | ------------------------------------- | | `pnpm dev` | Start all dev servers | | `pnpm build` | Build all apps/packages | | `pnpm test` | Run unit/integration tests | | `pnpm test:e2e` | Run Playwright e2e tests | | `pnpm lint` | Lint all workspaces | | `pnpm typecheck` | Type-check all workspaces | | `pnpm format` | Format all files with Prettier | | `pnpm storybook` | Start Storybook | | `pnpm db:generate` | Generate Prisma client | | `pnpm db:migrate:dev` | Run dev migrations | | `pnpm db:studio` | Open Prisma Studio | | `pnpm i18n:aggregate` | Aggregate component translation files | ## Repository structure ``` apps/ api/ @dwellops/api — Fastify backend web/ @dwellops/web — Next.js frontend packages/ config/ @dwellops/config — ESLint, Prettier, tsconfig, Stylelint, Vitest types/ @dwellops/types — shared TypeScript types schemas/ @dwellops/schemas — shared Zod schemas db/ @dwellops/db — Prisma client + data access boundary i18n/ @dwellops/i18n — i18n helpers ui/ @dwellops/ui — shared UI primitives test-utils/ @dwellops/test-utils — test factories, render helpers docs/ scripts/ ``` ## Documentation - [Architecture](docs/architecture.md) - [Development guide](docs/development.md)