Skip to content

Latest commit

 

History

History
42 lines (36 loc) · 2.21 KB

File metadata and controls

42 lines (36 loc) · 2.21 KB

Repository Guidelines

Project Structure & Module Organization

  • App code lives in src.
    • src/app (Next.js routes, API, middleware)
    • src/components (UI; reusable components in PascalCase)
    • src/lib (helpers: auth, db, ai, validations, etc.)
    • src/hooks (React hooks: useX)
  • Assets in public/. End‑to‑end tests in tests/. Scripts in scripts/. Docker files in docker/.

Build, Test, and Development Commands

  • pnpm dev — Run the app locally (Next.js dev server).
  • pnpm build / pnpm start — Production build and run.
  • pnpm lint / pnpm lint:fix — ESLint + Biome checks and autofix.
  • pnpm format — Format with Biome.
  • pnpm test / pnpm test:watch — Unit tests (Vitest).
  • pnpm test:e2e — Playwright tests; uses playwright.config.ts webServer.
  • DB: pnpm db:push, pnpm db:studio, pnpm db:migrate (Drizzle Kit).
  • Docker: pnpm docker-compose:up / :down to run local stack.

Coding Style & Naming Conventions

  • TypeScript everywhere. Prefer zod for validation.
  • Formatting via Biome: 2 spaces, LF, width 80, double quotes.
  • Components: PascalCase.tsx; hooks/utilities: camelCase.ts.
  • Co-locate small module tests next to code; larger suites under tests/.
  • Keep modules focused; avoid circular deps; use src/lib for shared logic.

Testing Guidelines

  • Unit tests: Vitest, filename *.test.ts(x).
  • E2E: Playwright under tests/, filename *.spec.ts.
  • Run locally: pnpm test and pnpm test:e2e (ensure app is running or let Playwright start via config).
  • Add tests for new features and bug fixes; cover happy path + one failure mode.

Commit & Pull Request Guidelines

  • Conventional Commits: feat:, fix:, chore:, docs:, etc. Example: feat: add image generation tool.
  • Branch names: feat/…, fix/…, chore/….
  • PRs: clear description, linked issues, screenshots or terminal output when UI/CLI changes; list test coverage and manual steps.
  • Before opening PR: pnpm check (lint+types+tests) should pass.

Security & Configuration Tips

  • Copy .env.example to .env; never commit secrets. For local HTTP use NO_HTTPS=1 or pnpm build:local.
  • If using DB/Redis locally, start services via Docker scripts or your own stack.