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.
What the model says on its own, from training data. Confident and uncited. It does not know when it is out of date.
The same question, answered only from cited claims. It gives the current fact, flags where sources disagree and shows its receipts.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.