Next.js is a full-stack React framework. React itself is just a UI library — it renders components but leaves routing, data fetching, server rendering, and build tooling to you. Next.js provides all of that out of the box, plus a server runtime.
What React alone leaves out (and Next.js adds)
text
React (library) → Next.js (framework) adds:
──────────────────────────────────────────────────
UI rendering only → File-based routing (folders = routes)
Client-side rendering → Server rendering (SSR), static generation (SSG), ISR
You wire data fetching → Built-in data fetching + caching
No backend → API routes / Route Handlers (full-stack)
Manual bundling → Zero-config build, code splitting, optimization
Manual <img> → next/image (auto-optimized images), next/font
