Server vs Client Components, CSS :has() for parent styling, data-pending attribute pattern.
Streaming with Suspense boundaries, co-locating skeleton components with their data.
Server Functions with "use server", Zod validation, returning errors, cache invalidation.
Preserve form input on validation errors, reuse forms for create and edit with .bind().
SubmitButton component pattern, why it must be a child of the form.
Updater functions for rapid clicks, data-pending for parent styling, ArchiveButton pattern.
Opt-in caching with "use cache", revalidateTag + refresh() for invalidation.
Page-level enter/exit animations, shared element transitions with name + share="morph".
error.tsx with reset(), not-found.tsx with notFound(), error boundary placement.
Pre-render dynamic routes, generateMetadata for SEO, on-demand generation for new slugs.
Shareable filter/sort state, preserving params on update, cycle button with optimistic UI.
Request deduplication with cache(), combining with "use cache" for cross-request caching.
isPending for delete buttons, nested startTransition for state updates after await.
Export skeletons alongside components, match layout structure, use with Suspense.
unauthorized() in Server Components, unauthorized.tsx files, protecting Server Functions.
What triggers dynamic rendering, when Suspense shows fallbacks, updateTag() for ISR.
Parent passes async function, child owns useTransition, design/SubmitButton pattern.
Track Link pending state, SortButton pattern, prefetch={false} for visible feedback.