Next.js 16 + React 19 + Tailwind CSS 4 boilerplate. Read CONVENTIONS.md before writing any component, section, or page — it is the whole spec for how this repo is built.
npm install
npm run devOpen http://localhost:3000.
| Script | What it does |
|---|---|
npm run dev |
Start the dev server |
npm run build |
Production build |
npm run start |
Serve the production build |
npm run lint |
ESLint |
npm run to:avif |
Convert an image to AVIF and report its inline cost — rule 11 |
npm run extract:avif |
Pull the first frame of every .webm under public/ as a poster |
npm run frame:rive |
Render a still from a .riv file for use as its poster |
lib/seo.ts—SITE_NAME,SITE_URL,SITE_DESCRIPTION,SITE_ROUTES. Everything inapp/robots.ts,app/sitemap.ts,app/llms.txt/route.tsand every page's metadata derives from these (rule 18). SetNEXT_PUBLIC_SITE_URLin the environment to override the URL per deploy.app/globals.css— match the@layer basetype scale and the--padding-section-*tokens to the design before building anything (rules 1 and 3).app/opengraph-image.jpg— 1200×630, with anopengraph-image.alt.txtbeside it.- Fonts —
app/layout.tsxships Inter + a local Inter Display; swap them for the design's typeface.
| File | What's in it |
|---|---|
CONVENTIONS.md |
The build rules. Read first. |
AGENTS.md |
Next.js version notes for agents |
OPTIMIZATION.md |
Why Asset's Rive loading is gated behind LCP, with the measurements |