The fantasy motocross experience.
- Framework: Next.js 15 (App Router)
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS v4
- Testing: Vitest + jsdom
- Package Manager: pnpm
pnpm install
pnpm devOpen http://localhost:3000 to see the app.
| Command | Description |
|---|---|
pnpm dev |
Start the dev server |
pnpm build |
Production build |
pnpm start |
Start the production server |
pnpm lint |
Run ESLint |
pnpm exec vitest run |
Run tests |
pnpm exec tsc --noEmit |
Type check |
app/ → Next.js App Router pages and layouts
components/ → Shared UI components
lib/ → Core domain logic and utilities
- UI components:
camelCasefile names - Hooks, utils, backend:
kebab-casefile names - Tests: Colocated next to source files, not in
__tests__/directories - State: React Context over Redux
- Commits: Conventional commit format (
feat(scope):,fix(scope):, etc.)