All articles

EngineeringFebruary 12, 20263 min read

Getting Started with Next.js 16

Learn about the latest features and improvements in Next.js 16, including React 19 support, Cache Components, and how to leverage them in your projects.

Timothy BenjaminXodus Wing

Next.js 16 is here, and it brings some of the most significant improvements to the framework yet. Whether you’re building a marketing site, a dashboard, or a full-stack application, the new release focuses on performance, developer experience, and making it easier to build fast, cacheable UIs.

One of the headline features is first-class support for React 19. The App Router has been refined to work seamlessly with the latest React APIs, including improved streaming, transitions, and server components. If you’ve been waiting to adopt React 19 in production, Next.js 16 is the right time to make the jump.

Cache Components are another major addition. They give you fine-grained control over what gets cached and how. You can mark components with "use cache" to cache their result, use cache tags for invalidation, and configure cache lifetime. This makes it much easier to build fast pages without over-fetching or under-caching.

The async request APIs from Next.js 15 are now the default. Params, searchParams, cookies, and headers are all async, which keeps your code clean and avoids blocking. The migration from 15 to 16 is straightforward: run the official codemod and fix any remaining call sites. The documentation walks you through every step.

Turbopack continues to improve. In 16 it’s the default for both development and production builds in many setups, and hot reload is noticeably faster. Large codebases see a real difference in iteration speed, which matters when you’re shipping features every week.

If you’re coming from Next.js 15, we recommend creating a branch, running the upgrade, and then enabling new features incrementally. Start with Cache Components on a few non-critical pages to get a feel for the API. Then adopt the new async patterns wherever you touch request APIs.

Server Actions and form handling have also been refined. You get better error boundaries, clearer loading states, and more predictable behavior when combining server and client components. For forms and mutations, the DX is now on par with what you’d expect from a modern full-stack framework.

On the tooling side, the Next.js dev server exposes an MCP (Model Context Protocol) endpoint when running in development. This allows editors and tooling to query routes, errors, and build status directly—useful for debugging and for AI-assisted development.

Performance remains a core focus. Partial Prerendering (PPR), incremental static regeneration, and smart prefetching all work together so that users see content quickly while still getting dynamic data where needed. The result is a framework that feels fast in development and in production.

We’ve been running Next.js 16 on several projects and the stability is solid. The team has fixed a lot of edge cases around caching and revalidation, and the docs are up to date. If you’re starting a new project today, we’d choose 16 without hesitation. For existing apps, plan a short upgrade window and you’ll be in good shape.

In summary: Next.js 16 is a strong release. React 19 support, Cache Components, and a polished async request model make it easier to build fast, maintainable applications. Take the time to read the upgrade guide and try the new features in a small app—you’ll find the developer experience is better than ever.