This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
- Client:
cd client && npm run dev(NextJS with Turbopack on port 3002) - Server:
cd server && npm run dev(TypeScript backend) - Lint:
cd client && npm run lintorcd server && npm run build - TypeCheck:
cd client && tsc --noEmitorcd server && tsc - Database:
cd server && npm run db:generate(generate migration files after schema changes; applied withnpm run db:migrate)
- TypeScript with strict typing throughout both client and server
- Client: React functional components with minimal useEffect and inline functions
- Frontend: Next.js, Tailwind CSS, Shadcn UI, Tanstack Query, Zustand, Luxon, Nivo, react-hook-form
- Backend: Fastify, Drizzle ORM (Postgres), ClickHouse, Zod
- Error handling: Use try/catch blocks with specific error types
- Naming: camelCase for variables/functions, PascalCase for components/types
- Imports: Group by external, then internal (alphabetical within groups)
- File organization: Related functionality in same directory
- Dark mode is default theme
- Never run any database migration scripts
PRODUCT.md(repo root) — strategic design context: register (product), users, purpose, brand personality, anti-references, and design principles. Read it before frontend/design work.DESIGN.md(repo root) — visual system: color tokens, typography, components, layout. The source of truth for visual decisions.- The
/impeccableskill reads both files before any design task.