Setting the file. One moment.
Subchapter 7.8
references/playbooks/content-site.mdMarkdown2 KBView on GitHub
Documentation, blogs, knowledge bases, marketing-adjacent content with mostly static pages. Authoring may be headless-CMS-driven or markdown-in-repo.
Edge Requests dominate (every page view is an edge request; static assets even more). Image Optimization is often the #2 line item. Function Duration tends to be low — most pages should be static or ISR.
generateStaticParams for App Router or getStaticPaths for Pages Router. Anything CMS-driven should run on a webhook revalidation, not on every request.revalidate: 3600 (hourly) is a good starting point for docs; 60s for blog index pages.next/image for every image asset. Hero images, author photos, post inline images, OG images. Even thumbnail-only sites benefit from format negotiation (WebP/AVIF).next/font for self-hosted fonts. Eliminates FOIT/FOUT, eliminates the third-party request, prevents CLS.next/link does this by default. For other frameworks, consider intersection-observer-based prefetch on the visible link set.force-dynamic on the blog index. Almost never necessary. The index can ISR or be fully static./preview/[slug] route that’s effectively another rendering path; sometimes called from production by mistake. Audit referrers.https://nextjs.org/docs/app/api-reference/functions/generate-static-params — for pre-renderinghttps://vercel.com/docs/incremental-static-regeneration — for the ISR fixhttps://nextjs.org/docs/app/api-reference/components/image — image optimizationhttps://nextjs.org/docs/app/api-reference/components/font — self-hosted fontsvercel-react-best-practices:bundle-defer-third-party — defer analytics/cookie banners