"Next.js 16 fully embraces React 19 Server Components. TypeScript follows naturally."
The App Router structure
Next 16's App Router (the only router for new projects) uses file-based routing under app/. app/page.tsx is the root page. app/posts/[id]/page.tsx is a dynamic route. app/layout.tsx wraps children. Each file exports either a default component (page/layout) or specific named exports (loading, error, not-found).
Route segment props are typed automatically
Page and layout components receive typed props from the router. export default async function Page({ params, searchParams }: { params: Promise<{ id: string }>; searchParams: Promise<{ q?: string }> }). Note that in Next 16, both params and searchParams are async — you await them before reading. This is part of React's broader async-first model.
Data fetching and revalidation
In Server Components, you fetch directly: const data = await fetch('https://api.example.com/posts').then(r => r.json()). Next caches automatically; pass { next: { revalidate: 60 } } for ISR-style invalidation. The cache and types both flow through TypeScript correctly.