ADR-0002 モノレポと技術スタック
- ステータス: 採用
- 日付: 2026-06-20
背景
e コマース事業者向け SaaS を、将来スケールしても破綻しない構成で立ち上げたい。 フロント・API・インフラ・ドキュメントを一貫した型安全な TypeScript で扱いたい。
決定
- モノレポ: pnpm workspaces + Turborepo。
- フロント: Next.js 15 (App Router) + React 19 + Tailwind + shadcn/ui。
- API: NestJS 11。
- DB: Drizzle ORM + PostgreSQL(AWS RDS)。マルチテナントは
共有DB +
tenant_id行分離 + RLS(ADR-0003)。 - 型共有: Zod スキーマを
@repo/contractsに集約し Web/API で共有。 - IaC: Pulumi (TypeScript)。
内部共有パッケージはコンパイル方式
@repo/* は CommonJS で dist にビルドし main/types/exports を備える。
NestJS (commonjs + classic node 解決) は exports のみのソース直消費を解決
できないため。Next は bundler 解決で問題ない。新しい共有パッケージも同方式に揃える。
影響
apps → packagesの一方向依存を維持する。- 新しい共有パッケージはコンパイル方式(dist 出力)で作る。