Multi-page Next.js site with a clear, scalable structure. Includes a homepage and a secondary About page, plus shared layout components and a consistent visual system.
app/
about/
page.tsx # Secondary page
components/
Container.tsx # Shared layout wrapper
SiteFooter.tsx # Global footer
SiteHeader.tsx # Global header + nav
globals.css # Theme tokens + background + animations
layout.tsx # Root layout (fonts + header/footer)
page.tsx # Home page
public/
... # Static assets
- App Router structure keeps each page self-contained in
app/{route}/page.tsx. - Shared layout elements live in
app/components/for reuse across pages. - Global styling and theme tokens live in
app/globals.cssfor consistent look and feel. - The root layout applies fonts and persistent chrome (header, footer, background).
npm install
npm run devnpm run dev # Start local dev server
npm run build # Create production build
npm run start # Run production build locallyThis project works on any Next.js-compatible host (Vercel, Netlify, Render, etc.).
npm run build
npm run startFor Vercel, import the repo and use the default Next.js settings.
- Create a route folder under
app/withpage.tsxinside it. - Follow the same structure as existing pages: hero, supporting sections, CTA.
- Reuse
Container, header/footer, and spacing utilities to keep rhythm aligned. - Prefer the same typography scale and color tokens from
globals.css.
Example:
app/contact/page.tsx
This will auto-route to /contact and inherit the global header/footer, fonts, and theme.
- Use
Containerfor page width and padding. - Keep section spacing in the
pt-16,pt-20,pt-28pattern used on existing pages. - Use
text-muted,text-ink, andbg-cardto keep the same contrast hierarchy. - Add CTAs with the existing button styles to preserve focus-visible behavior.