This commit is contained in:
neutrino2211
2025-09-19 22:17:14 +01:00
parent 2bd8fc582e
commit 344596e390
2 changed files with 197 additions and 98 deletions

34
CRUSH.md Normal file
View File

@@ -0,0 +1,34 @@
# CRUSH.md
## Commands
- **Install dependencies**: `pnpm install`
- **Development server**: `pnpm dev` (runs `next dev --turbopack`)
- **Build**: `pnpm build` (runs `next build --turbopack`)
- **Start production**: `pnpm start` (runs `next start`)
- **Lint**: `pnpm lint` (runs `eslint`)
- **Typecheck**: `pnpm tsc --noEmit` (TypeScript compiler without emitting files)
- **Tests**: No test script defined. Add Jest or Vitest via `pnpm add -D vitest` and configure.
- **Run single test**: Once tests are set up, e.g., `pnpm vitest src/app/page.test.tsx` (example; adjust based on setup).
## Code Style Guidelines
- **Language**: TypeScript with strict mode enabled (`strict: true` in tsconfig.json).
- **Framework**: Next.js 15 (App Router). Use server components by default; mark client components with `'use client'`.
- **Styling**: Tailwind CSS (via globals.css). Use utility classes; avoid custom CSS unless necessary.
- **Fonts**: Geist Sans for body (`--font-geist-sans`), Geist Mono for code (`--font-geist-mono`).
- **Imports**:
- Use absolute paths with `@/*` alias (e.g., `import { Component } from '@/components'`).
- Prefer named imports over default where possible.
- Import types explicitly: `import type { Metadata } from 'next';`.
- Group imports: Next.js/React, then third-party, then local.
- **Formatting**: Follow ESLint rules from `eslint.config.mjs` (extends `next/core-web-vitals`, `next/typescript`). Use Prettier if added.
- **Types**: Always type props (e.g., `Readonly<{ children: React.ReactNode }>`). Use `React.FC` sparingly; prefer function signatures.
- **Naming Conventions**:
- Components: PascalCase (e.g., `HomePage`).
- Variables/functions: camelCase.
- Files: kebab-case for pages (e.g., `page.tsx`), PascalCase for components.
- **Error Handling**: Use Next.js error boundaries or try-catch in async functions. Log errors to console in development.
- **Components**: Functional components with hooks. Colocate styles and logic.
- **Paths**: Use `next/image` for images with `priority` for above-fold. Optimize with width/height.
- **Ignores**: ESLint ignores `node_modules/**`, `.next/**`, etc. Respect `.gitignore`.