Still True?
Sanity Context · MiniMax-M3

Every model answers.
This one shows its receipts.

Models answer Next.js questions from stale training data, confidently. Ask once and watch a plain model go head to head with an agent grounded in a Sanity Context knowledge base that cites its sources and flags where they disagree.

Plain modelno sources

What the model says on its own, from training data. Confident and uncited. It does not know when it is out of date.

Still Truegrounded in the graph

The same question, answered only from cited claims. It gives the current fact, flags where sources disagree and shows its receipts.

The map

What is contested and what replaced what

Every claim is a node. Amber links are live contradictions, dashed blue links are one fact superseding an older one. Hover a node to trace it.

On Next.js 16…Call revalidateTag with a…On Next.js 15 and newer…params and searchParams…Any variable in .env.local…Only environment variables…In the Next.js App Router…In the Next.js App Router…In Next.js 14 fetch…Import fonts from…Install and import fonts…To set the page title in…In the Pages Router you…In the App Router you set…Put request middleware in…On Next.js 16 request…Configure remote images…Allow remote image hosts…GET Route Handlers are not…GET Route Handlers are…The App Router in the app/…Next.js routes live in the…Server Actions are stable…Server Actions are…On Next.js 16 Turbopack is…next dev uses webpack by…
contradictssupersedessupports
Time machine

Watch the truth change

Drag through time. The current answer for each topic flips as newer facts supersede old ones, which is exactly why a model trained on last year’s docs gets it wrong.

the current truth, as ofAug 2026
Oct 2022Aug 2026
Data revalidation

On Next.js 16 revalidateTag takes a cacheLife profile as its second argument. Use updateTag in a Server Action for read your writes.

was: Call revalidateTag with a single tag argument to invalidate cached data by tag.

Dynamic params

On Next.js 15 and newer params and searchParams are Promises. You must await them in a page, layout or route handler.

was: params and searchParams are plain synchronous objects you read directly without awaiting.

Environment variables

Only environment variables prefixed with NEXT_PUBLIC_ are exposed to the browser. Others stay server only.

was: Any variable in .env.local is available in the browser through process.env.

Fonts

Import fonts from next/font. Font optimization is built in so there is no extra package to install.

was: Install and import fonts from the standalone @next/font package.

Metadata

In the App Router you set page metadata by exporting a metadata object or a generateMetadata function from a layout or page.

was: In the Pages Router you add elements to the document head with next/head.

Middleware

On Next.js 16 request interception moves to proxy.ts which runs on the Node.js runtime. Rename middleware.ts to proxy.ts and export a proxy function.

was: Put request middleware in middleware.ts at the project root. Scope it with a config.matcher export and it runs on the Edge runtime.

Route Handlers

GET Route Handlers are not cached by default. You opt in with route segment config such as dynamic = 'force-static'.

was: GET Route Handlers are cached by default and treated as static.

Routing

The App Router in the app/ directory is the current recommended Next.js router. Its components are React Server Components by default.

was: Next.js routes live in the pages/ directory. You fetch data with getServerSideProps or getStaticProps.

Server Actions

Server Actions are stable since Next.js 14 and enabled by default with no flag.

was: Server Actions are experimental. Enable them with the experimental.serverActions flag in next.config.

Turbopack

On Next.js 16 Turbopack is the default bundler for next dev and next build. Opt out with the --webpack flag.

was: next dev uses webpack by default. Enable Turbopack with the --turbo flag.

fetch caching

In the Next.js App Router fetch is not cached by default. You opt in with cache: 'force-cache'.

was: In Next.js 14 fetch defaults to force-cache so responses are cached by default.

next/image

Configure remote images with images.remotePatterns. next/image lazy loads by default and needs width and height unless you use fill.

was: Allow remote image hosts by listing them in the images.domains array in next.config.

Every claim, with its source

26 claims · 3 contested

Data revalidation

Dynamic params

Environment variables

Fonts

Metadata

Middleware

Route Handlers

Routing

Server Actions

Turbopack

fetch caching

next/image