How it works
Next.js decides where and when each page is built: ahead of time at build, on the server for every request, or refreshed in the background (ISR). Its App Router, based on folders in the app directory, uses React Server Components by default, so data can be fetched on the server and less JavaScript reaches the browser. Route handlers and server functions let the same project handle forms, APIs and webhooks.
It also bundles image optimisation, font loading, SEO metadata and Turbopack, a Rust-based bundler that is the default in recent versions. The older Pages Router is still supported for existing apps. Next.js is open source and runs on any Node.js server or in Docker, but some features work most smoothly on Vercel, the company that makes it, which is worth weighing if you plan to host elsewhere.
Next.js pros and cons
Pros
- Static, server-rendered and API routes in one project
- Server Components cut the JavaScript sent to browsers
- Built-in image, font and SEO helpers
- Very large community, with many examples and hosting options
- Deploys in minutes on Vercel, with a preview for every branch
Cons
- Caching and server-versus-client rules take real effort to learn
- Big changes between major versions mean regular upgrade work
- Some features are easiest on Vercel; self-hosting needs more setup
When to use Next.js
Pick it when
- Marketing sites, stores and SaaS apps that need good SEO
- A React team that wants one framework for pages and backend routes
- Sites that mix static pages with personalised, live ones
Skip it when
- A pure single-page app behind a login, where Vite is simpler
- A content site with little interactivity, where Astro ships less JavaScript
Next.js pricing
Open source
Free (MIT). Hosting is separate: Vercel's Hobby plan is free for personal, non-commercial use and Pro is about $20 a month per developer; any Node.js host works too.
Next.js pricing page (opens in a new tab)Approximate, checked September 2026.What the other tools cost
Next.js vs the alternatives
Related terms
More in Frontend
Meta-frameworks