# Cursor rules — Next.js 15

- Next.js 15 App Router. Do NOT use Pages Router patterns.
- TypeScript strict. No `any`. No default exports except Next.js conventions (page/layout/error/loading/route/middleware).
- Server Components by default. `'use client'` only for state/effects/handlers/browser APIs.
- Tailwind v4 only. No CSS modules. Use `cn()` for conditional classes.
- Mutations: Server Actions with Zod validation + `revalidatePath`/`revalidateTag`.
- Public APIs: Route Handlers in `app/api/*/route.ts`.
- Validate all env vars at import time with Zod. Throw on missing.
- pnpm only. Do not add packages without approval.
- Run `pnpm build && pnpm typecheck && pnpm test` before declaring done.
- Do not touch migrations or destructive commands without explicit instruction.
