PSD401 template for Next.js applications. Start every new Next.js repo from this template — never from scratch (01-repo-lifecycle.md).
- Next.js 16 (App Router) + React 19 + TypeScript —
strictandnoUncheckedIndexedAccesson. - Vitest 4 + Testing Library with one real, behavior-asserting example test (
components/counter.test.tsx). PSD CI fails repos with zero tests by design — keep at least one real test at all times. - ESLint (flat config) —
next/core-web-vitals,next/typescript, and the PSD test-quality rules (vitest/expect-expect, no.only, no.skip). - PSD CI wiring —
.github/workflows/call the org reusable workflows (reusable-psd-ci,reusable-claude-review,reusable-license-check). No CI logic lives in this repo. - Dependabot — weekly GitHub Actions + npm updates, minor/patch grouped.
- MIT LICENSE, CLAUDE.md, AGENTS.md — required in every PSD repo.
- Rename: update
nameinpackage.json, the<h1>inapp/page.tsx, andmetadatainapp/layout.tsx. Naming: lowercase-kebab; prefixpsd-for district-specific tools. - Set repo custom properties:
tier(defaultc-experiment),owner,lifecycle: active— a repo is born governed or not born. - Add topics for discovery (e.g.
nextjs,student-facing). - Review CLAUDE.md: fill in the architecture map for your app; prune anything that doesn't apply. It is kept under 100 lines — treat it like code.
- Install and verify green:
bun install && bun run test && bun run lint && bun run typecheck(bun is the PSD JS runtime rule;bun.lockis committed). - Replace
components/counter.tsxand its test with your first real component — do not delete the test without replacing it.
| Task | Command |
|---|---|
| Install | bun install |
| Dev server | bun run dev |
| Build | bun run build |
| Test | bun run test |
| Lint | bun run lint |
| Typecheck | bun run typecheck |
Technology Services, Peninsula School District. See SECURITY.md (inherited from the org .github repo) for contact.