Repository Guidelines
Project Structure & Module Organization
This repository uses Next.js App Router with source code under src/.
src/app/: route entries and Next.js convention files such aslayout.tsx,page.tsx, and route pages likepublications/page.tsxsrc/components/: shared UI and layout components such as the site header and footersrc/features/: domain-focused code grouped by feature (home,publications), including components, local data, and typessrc/lib/: shared utilities and motion presetspublic/: static assets served directly, includingpublic/images/docs/andresources/: internal documentation and non-runtime design/source materials
Keep route files thin and move reusable UI into src/components/ or src/features/.
Build, Test, and Development Commands
Use npm; package-lock.json is committed.
npm install: install dependenciesnpm run dev: start the local dev server athttp://localhost:3000npm run build: create a production build and catch compile-time issuesnpm run start: run the production build locallynpm run lint: run ESLint for the codebase
Before opening a PR, run npm run lint and npm run build.
Coding Style & Naming Conventions
Write TypeScript with 2-space indentation and match nearby files.
- Use
PascalCasefor React components,camelCasefor variables/functions, and lowercase route segment names undersrc/app/ - Prefer Server Components; add
"use client"only when client-side interaction or motion requires it - Use Tailwind utility classes inline in JSX; promote repeated values to global tokens in
src/app/globals.css - Use
next/linkfor internal navigation and prefernext/imagefor images - Avoid
any; start withunknownif a type is unclear
Testing Guidelines
There is no dedicated test framework configured yet. For now, treat these as required validation:
npm run lintnpm run build
When tests are added, place them near the code they cover or in a tests/ directory. Prefer names like page.test.tsx or home.spec.ts.
Commit & Pull Request Guidelines
Recent history follows Conventional Commit-style messages such as feat(home): add stitched landing page and mega menu.
- Follow the repo’s Git Flow workflow: branch feature work from
developintofeature/*, userelease/*for release prep, andhotfix/*frommainfor urgent production fixes - Format commits as
type(scope): subject - Use clear scopes like
home,publications, orlayout - Keep subjects short, imperative, and specific
PRs should follow .github/PULL_REQUEST_TEMPLATE.md and include a brief user-facing summary, linked issues when available, screenshots for UI changes, and the validation performed. If structure or workflow rules change, update the related docs in the same PR. Before requesting review, run npm run lint, complete relevant manual checks, and remove temporary files or debug code.
Security & Configuration Tips
Do not commit secrets or machine-specific values. Store local configuration in .env files and document new runtime variables in README.md if they become required.