- pnpm 10 workspace + TypeScript strict + ESLint flat + Prettier - CLAUDE.md as canonical brief - docs/tasks/ — 22 task briefs broken out by phase for sub-sessions - docs/decisions/ — ADR scaffold Implements task 01 (repo-init).
39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
# 02 — Next.js app skeleton
|
|
|
|
## Goal
|
|
|
|
Stand up a minimal Next.js 15 (App Router) app with Tailwind and shadcn/ui, rendering a placeholder dashboard.
|
|
|
|
## Why
|
|
|
|
Provides the shell the modules will plug into.
|
|
|
|
## Depends on
|
|
|
|
- 01 (repo init)
|
|
|
|
## Scope
|
|
|
|
- Install Next.js 15 + React 19 into the existing repo (do **not** use `create-next-app` to overwrite — add deps manually or with `--use-pnpm` into the existing dir).
|
|
- App Router under `src/app/` with a root layout and a `/` page that renders "famapp" plus a stub "Dashboard coming soon".
|
|
- Tailwind v4 (or latest stable) configured against `src/**`.
|
|
- shadcn/ui initialized; install `button`, `card`, `input`, `dialog` to start.
|
|
- Path alias `@/*` working at runtime + in the editor.
|
|
- `next.config.ts` with `reactStrictMode: true` and `output: "standalone"` (required for the Docker image in task 05).
|
|
|
|
## Out of scope
|
|
|
|
- Auth, DB, modules. Just the shell.
|
|
- Custom theming beyond shadcn defaults.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] `pnpm dev` serves `http://localhost:3000` showing the placeholder page.
|
|
- [ ] `pnpm build` succeeds with `output: "standalone"` producing `.next/standalone/`.
|
|
- [ ] `pnpm lint` (now extending `next/core-web-vitals`) passes.
|
|
- [ ] No `any` introduced.
|
|
|
|
## Notes
|
|
|
|
- shadcn CLI writes to `src/components/ui/`. Keep it there; modules will import from it.
|