Why this matters
Brings SSG performance with safe fallbacks.
When statically prebuilding dynamic segments, implement generateStaticParams and validate params; fall back to notFound() for invalid slugs.
Brings SSG performance with safe fallbacks.
Side-by-side examples engineers can pattern-match during review.
// app/blog/[slug]/page.tsx fetching only at runtime without SSGexport async function generateStaticParams(){ const slugs = await api.listSlugs(); return slugs.map(s=>({ slug:s })) }
export default async function Page({ params }){ const post = await api.getPost(params.slug); if(!post) notFound(); return <article>{post.title}</article> }Missing generateStaticParams for static contentgenerateStaticParams + notFound()From the same buckets as this rule.