FNA Technology Header Logo
ServicesWorkAboutBlog
[ start a project ]
FNA Technology Footer Logo

Transforming your digital vision into reality. Software, AI, web & mobile — built for outcomes.

[email protected] footer link+91 8879510299 footer link
Share page:
MAIN
HomeOur ServicesProjectsCompany Blog
COMPANY
About UsContact UsLinkedIn
LEGAL
Privacy PolicyTerms & Conditions
© 2026 FNA TECHNOLOGY LLP — ALL RIGHTS RESERVEDIndia · UK · Middle East
Next.js 15 FeaturesNext.js 15 explained: async request APIs, new caching defaults, stable Turbopack Dev, React 19 support, and the App Router best practices teams ship in 2026.Business owners, developers, CTOsnext.js 15 web development framework 2026, Next.js 15 features, App Router Next.js, React Server Components, Turbopack bundler, Next.js vs Remix 2026, modern web development, web development UAEFNA Technology
Web Development

Next.js 15 Features

April 20, 2026
7 min read
Arun Pandit
Next.js 15 modern web development framework 2026

Short version: Next.js 15 shipped October 21, 2024. Its headline changes: request APIs (cookies, headers, params, searchParams) became async, fetch and GET route handlers stopped caching by default, Turbopack Dev went stable, and React 19 support landed. In 2026 these are the production defaults teams build on.

Next.js 15 was the release that changed how a Next.js app handles requests and caching. It went stable on October 21, 2024 (Next.js blog), and the defaults it introduced are now what most production App Router projects run on. This guide answers what changed, which parts matter for new builds, and how the App Router patterns hold up in 2026.

We build production web apps on Next.js, so the notes below are written from the perspective of shipping with these defaults, not just reading the changelog.

What are the main features in Next.js 15?

Next.js 15 grouped its changes into a few areas: async request APIs, new caching defaults, a stable Turbopack development server, and React 19 support. The two breaking changes were the async request APIs and the caching semantics. Everything else was additive.

Here is the full feature set, from the official October 21, 2024 release notes:

FeatureWhat changedWhy it matters
Async Request APIs (breaking)cookies, headers, draftMode, params, and searchParams became asynchronous and must be awaitedLets the server prepare work before a request arrives; every dynamic route needs an await
Caching Semantics (breaking)fetch, GET route handlers, and client navigations are no longer cached by defaultFresher data out of the box; you now opt into caching instead of opting out
Turbopack Dev (stable)next dev --turbo reached stableOn vercel.com, Vercel reported up to 76.7% faster server startup and 96.3% faster Fast Refresh
React 19 supportSupport for React 19 plus the experimental React CompilerAccess to React 19 APIs and automatic memoization (experimental at launch)
<Form> component (next/form)New form element with prefetching and client-side navigationSearch-style forms that navigate get prefetch and progressive enhancement without boilerplate
unstable_after (experimental)Schedule work after the response finishes streamingRun logging or analytics without making the user wait
instrumentation.js (stable)Stable API for server lifecycle observabilityA supported hook for monitoring and tracing setup
TypeScript next.config.tsConfig file can be written in TypeScriptTyped config, fewer config mistakes
ESLint 9 supportAdded support for ESLint 9Lint on the current major while keeping ESLint 8 compatibility

What changed with caching in Next.js 15?

Caching flipped from opt-out to opt-in. In Next.js 14, fetch requests and GET route handlers were cached by default. In Next.js 15, they are not.

Three specific defaults changed, per the release notes:

  • fetch requests are no longer cached by default. Opt back in per call with cache: 'force-cache'.
  • GET route handlers are not cached by default. Opt in with export const dynamic = 'force-static'.
  • The client-side Router Cache now uses a staleTime of 0 for page segments, so navigation reflects the latest page data. Shared layouts still partially render, and loading.js stays cached for 5 minutes.

For a build, this means you decide caching deliberately. A pricing page that must be fresh needs no extra work. A rarely-changing docs page is where you add force-static or a revalidate window. The mental model is: nothing is cached until you say so.

How do the async request APIs work in Next.js 15?

cookies, headers, draftMode, params, and searchParams return promises, so you await them. The reason, per Vercel, is that the server can prepare components that do not need request data before the request even arrives.

A reading of a cookie now looks like this:

Code
import { cookies } from 'next/headers';

export async function AdminPanel() {
  const cookieStore = await cookies();
  const token = cookieStore.get('token');
  // ...
}

params and searchParams are also async inside layout.js, page.js, route.js, generateMetadata, and generateViewport. At the 15 launch these APIs could still be read synchronously with a warning. That grace period ended in Next.js 16, where async access is required. There is an official codemod to migrate:

Code
npx @next/codemod@canary next-async-request-api .

How fast is Turbopack in Next.js 15?

Turbopack Dev (next dev --turbo) reached stable in Next.js 15. Vercel measured it against vercel.com, a large Next.js app, and reported up to 76.7% faster local server startup, up to 96.3% faster code updates with Fast Refresh, and up to 45.8% faster initial route compile without caching (Next.js blog).

Two caveats worth keeping accurate. In Next.js 15 these gains applied to the development server, not production builds. And at that release Turbopack had no disk caching yet. Both moved forward in later versions: Next.js 16, released October 21, 2025, made Turbopack the default bundler for next dev and next build (Next.js blog).

What are the App Router best practices in 2026?

The App Router patterns that worked at the Next.js 15 launch still hold, with the caching change baked into how teams write data fetching. From building on these defaults, five hold up well:

  • Default to Server Components. Fetch data on the server and pass plain props down. Reach for 'use client' only at the leaves that need interactivity, not at the top of a route.
  • Be explicit about caching. Since nothing caches by default, state intent: cache: 'force-cache' or a revalidate window for stable data, and leave dynamic data uncached. The default is correct more often than not.
  • Await request APIs everywhere. Treat cookies, headers, params, and searchParams as async from the first line. Code written this way needed no migration when Next.js 16 enforced it.
  • Stream with Suspense. Wrap slow data sections in <Suspense> so the shell renders immediately. This pairs with the request-prepares-early model the async APIs enable.
  • Use next/form for navigating forms. Search and filter forms that lead to a results page get prefetching and progressive enhancement for free.

In a real project, the biggest behavior shift is the caching default. Teams upgrading from 14 often see "stale data is gone" and then add back the caching they actually wanted, deliberately. That is the intended direction: correctness first, performance as a choice.

Is Next.js 15 still current in 2026?

No. Next.js 16 became available on October 21, 2025, and Next.js 16.2 followed on March 18, 2026 (Next.js blog). As of June 2026 the latest stable line is 16.2.x.

That said, Next.js 15's features are not obsolete. They became the foundation. Next.js 16 made Turbopack the default bundler, enforced the async request APIs that 15 introduced, and made React Compiler support stable. So the patterns in this guide are still the ones you write today. If you are on 15, the official @next/codemod upgrade CLI handles most of the move to 16.

How we use the App Router in production

We build custom web apps on Next.js as one of our core services. In practice, the Next.js 15 defaults shaped how we write every new route: Server Components by default, caching declared explicitly per data source, and request APIs awaited from the start so upgrades stay clean. The async-everywhere habit is the one that pays off most, because it future-proofed our routes against the Next.js 16 enforcement with zero rework. Furthermore, optimizing search visibility in 2026 requires understanding new formats; for details on structuring your content to appear in modern engines, see our AI Visibility Guide.

If you are planning a Next.js build or weighing an upgrade, our Next.js development services and broader web app development work cover both new builds and migrations. Happy to look at your setup.

Frequently Asked Questions

Next.js 15 was released as stable on October 21, 2024. It built on the earlier RC1 and RC2 releases and focused on stability alongside the new async request APIs and caching defaults.

There are two. First, the request APIs cookies, headers, draftMode, params, and searchParams became asynchronous and must be awaited. Second, caching semantics changed so that fetch requests, GET route handlers, and client navigations are no longer cached by default.

Next.js 15 added support for React 19 and shipped with it as the recommended pairing. The App Router uses React 19, while the Pages Router retained backward compatibility so existing apps could upgrade gradually.

In Next.js 15, Turbopack was stable for the development server only (next dev --turbo), not for production builds. Turbopack became the default bundler for both development and builds in Next.js 16, released October 21, 2025.

For new projects in 2026, start on the current Next.js 16 line, which is the latest stable release. Next.js 15's features carry forward into 16, so the App Router patterns are the same; 16 mainly makes them defaults and adds Turbopack builds.

Use the official automated upgrade CLI: npx @next/codemod@canary upgrade latest. For the async request API changes specifically, run npx @next/codemod@canary next-async-request-api . to migrate synchronous calls.

#next.js 15 web development framework 2026#Next.js 15 features#App Router Next.js#React Server Components#Turbopack bundler#Next.js vs Remix 2026#modern web development#web development UAE
Share this article:
Arun Pandit

Written by

Arun Pandit

CEO & Founder

CEO & Founder of FNA Technology. Specializing in AI, automation, and scalable software solutions — helping businesses leverage cutting-edge technology to drive growth and innovation.

Work with us