3.0 KiB
3.0 KiB
Repository Guidelines
Project Structure & Module Organization
src/app/: Next.js App Router pages, layouts, API routes, and server actions.src/components/: UI and feature components (home/,reader/,layout/,ui/).src/lib/: shared services (Komga/API access), auth, logger, utilities.src/hooks/,src/contexts/,src/types/,src/constants/: reusable runtime logic and typing.src/i18n/messages/{en,fr}/: translation dictionaries.prisma/: database schema and Prisma artifacts.public/: static files and PWA assets.scripts/: maintenance scripts (DB init, admin password reset, icon generation).docs/anddevbook.md: implementation notes and architecture decisions.
Build, Test, and Development Commands
Use pnpm (lockfile and packageManager are configured for it).
pnpm dev: start local dev server.pnpm build: create production build.pnpm start: run production server.pnpm lint: run ESLint across the repo.pnpm typecheckorpnpm -s tsc --noEmit: strict TypeScript checks.pnpm init-db: initialize database data.pnpm reset-admin-password: reset admin credentials.
Coding Style & Naming Conventions
- Language: TypeScript (
.ts/.tsx) with React function components. - Architecture priority: server-first. Default to React Server Components (RSC) for pages and feature composition.
- Data mutations: prefer Server Actions (
src/app/actions/) over client-side fetch patterns when possible. - Client components (
"use client"): use only for browser-only concerns (event handlers, local UI state, effects, DOM APIs). - Data fetching: do it on the server first (
page.tsx, server components, services insrc/lib/services), then pass serialized props down. - Indentation: 2 spaces; keep imports grouped and sorted logically.
- Components/hooks/services:
PascalCasefor components,camelCasefor hooks/functions,*.service.tsfor service modules. - Styling: Tailwind utility classes; prefer existing
src/components/uiprimitives before creating new ones. - Quality gates: ESLint (
eslint.config.mjs) + TypeScript must pass before merge.
Testing Guidelines
- No dedicated unit test framework is currently configured.
- Minimum validation for each change:
pnpm lintandpnpm typecheck. - For UI changes, perform a quick manual smoke test on affected routes (home, libraries, series, reader) and both themes.
Commit & Pull Request Guidelines
- Follow Conventional Commit style seen in history:
fix: ...,refactor: ...,feat: .... - Keep subjects imperative and specific (e.g.,
fix: reduce header/home spacing overlap). - PRs should include:
- short problem/solution summary,
- linked issue (if any),
- screenshots or short video for UI updates,
- verification steps/commands run.
Security & Configuration Tips
- Never commit secrets; use
.envbased on.env.example. - Validate Komga and auth-related config through settings flows before merging.
- Prefer server-side data fetching/services for sensitive operations.