Next.js Pages Router (Legacy)
Priority: P0 (CRITICAL)
[!IMPORTANT] The project uses Next.js Pages Router (
pages/directory). Do NOT use App Router features.
Implementation Guidelines
- Routing Architecture: Use the
pages/directory. Use_app.tsxfor global state/layouts and_document.tsxfor custom HTML attributes. Define dynamic routes using brackets[id].tsxor catch-all[...slug].tsx. - Data Fetching (SSR/SSG): Use
getServerSideProps(for every request) orgetStaticProps(at build time) withgetStaticPathsfor dynamic routes. Export these as standaloneasyncfunctions. - Logic Isolation: Never
fetchyour own/apiendpoints from Server-Side hooks. Import the service layer or DB logic directly. - Client Hooks: Use
useRouter()fromnext/routerfor navigation and access to query params. Userouter.push()or<Link>for client-side routing. - APIs: Implement API Routes in
pages/api/for server-only logic or webhooks. Standardize responses with appropriate HTTP status codes. - Next.js 15+ Compatibility: Be cautious of Next.js 15 upgrades; ensure all
getServerSidePropsreturn objects that match the expectedPageProps. - Styling: Standardize via CSS Modules (
*.module.css) or Tailwind CSS. Avoid global CSS unless imported in_app.tsx.