- Next.js (App Router) + React 18 + TypeScript
- Tailwind + shadcn/ui for UI
- Prisma + Postgres
- Package manager: pnpm
- Install:
pnpm install - Dev server:
pnpm dev - Build:
pnpm build - Typecheck:
pnpm check - Lint:
pnpm lint - Format:
pnpm format - Format check:
pnpm format:check - Prisma client:
pnpm prisma:generate - Migrations:
pnpm prisma:migrate
- Keep loading states as skeletons (no spinner-only loading).
- Align page content with the navbar container (
max-w-6xl px-6). - Match Contraption styling (Helvetica, rounded buttons, neutral palette).
- Use
.envlocally only; update.env.examplewhen adding variables; production uses injected env vars.
pnpm install,pnpm check,pnpm lint,pnpm format:check,pnpm build, and Docker build must pass.