Sanity Studio v6: A focused breaking release
Node 20 reached end of life, and that calls for a new major. We're using the opportunity to land a few other changes too. Here's what you need to know.

Bjørge Næss
Bjørge is a Staff Software Engineer at Sanity

Jordan Lawrence
Studio Engineering Team

John Siciliano
Senior Technical Product Marketing Manager
Published
We're bumping the sanity package from v5 to v6. The pre-release is available now, and v6 reaches latest on Thursday, June 11. The release covers five changes: dropped Node.js 20 support, three Studio behavior changes, and a Vite 8 upgrade.
Following v4 and v5, v6 is another focused major. Your schemas, plugins, configuration shape, and content APIs are unchanged.
Verify the upgrade against the pre-release before then. Use npm install sanity@next-major and see below for more information.
What's changing
Node.js 20 support has been removed. With Node.js 20 at end of life, the minimum supported version is now Node.js 22.12, in line with the Sanity CLI.
This only matters for the environments where you run the Studio dev server or build the Studio: your local machine and your CI or build pipeline. It does not affect a deployed Studio. The Studio builds to static assets (HTML, CSS, JS) that run in the browser, so there is no production server that needs Node or that you need to upgrade.
To resolve, upgrade your local and CI/build environments to Node.js 22.12 or newer, and set engines.node to >=22.12.
React strict mode is on by default in development. Strict mode has always been available via reactStrictMode in sanity.cli, but the default is now true.
- In most cases, strict mode surfaces issues you'll want to fix anyway.
- Strict mode reveals existing bugs earlier. It doesn't create new ones. Issues around effect cleanup and concurrent rendering are already latent in your code; strict mode just makes them visible in development.
- To opt out, set
reactStrictMode: falseinsanity.cli.
Custom auth providers no longer support the mode option. Previously, configuring an array of custom auth providers via auth.providers in sanity.config.ts would append them to the default providers. To replace the built-in providers with your own, you'd set mode: 'replace'. As of v6, auth.providers replaces by default, and mode: 'append' is no longer supported. To keep the previous behavior, use the callback config instead:
auth: {
providers: (prev) => [
...prev,
{
name: 'sanity',
title: 'Email / Password',
url: 'https://api.sanity.io/v1/auth/login/sanity',
},
],
},The Studio now builds on Vite 8. Studio v6 upgrades the build to Vite 8, a significant performance win. In internal use we've seen build times around 33% faster, and other large, expansive studios should see comparable gains.
- For most studios this is invisible. The React plugin updates automatically; the main change you'll notice is a smaller bundle from improved tree shaking.
- If you customize the Vite config in
sanity.cli, those overrides aren't shielded from the version bump. Run the pre-release before bumping to catch any breakage.
The default search strategy is now groq2024. It replaces groqLegacy as the default. You get faster search on large datasets, full Portable Text search with deeply nested content coverage, and Google-style queries (wildcards, phrases, negation). This strategy has been production-proven since early 2025.
- Search results, ordering, and counts may shift slightly, since each strategy uses different underlying query logic. For most studios this is an improvement you won't need to act on.
- For the full picture, such as tokenization, exact-matching rules, and custom field weighting, see the search configuration docs.
- To keep the previous behavior, set
search.strategyback togroqLegacyinsanity.config.ts:
search: {
strategy: 'groqLegacy',
}What this means for you
If you're a Sanity Studio user
Nothing changes for you. The developers maintaining your studio will handle the update.
If you're maintaining a studio
After v6 ships on Thursday, June 11, if your studio runs on Node.js 22.12 or newer, runs cleanly under strict mode, and has no custom auth.providers, the upgrade is a version bump:
npm install sanity@latest
Otherwise, run sanity dev against the pre-release and work through the changes that apply before bumping.
In either case, if a plugin you depend on hasn't published a v6-compatible peer range yet, npm fails the install on peer resolution. Run instead npm install sanity@latest --legacy-peer-deps as a stopgap until the plugin catches up.
If you're a Sanity Studio plugin developer
Test against the pre-release and update your peerDependencies to include v6:
{
"peerDependencies": {
"sanity": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-0"
}
}Until you publish that range, studios upgrading to v6 that depend on your plugin will hit an npm peer-dependency error, so publish as soon as you've verified against the pre-release.
You can follow our progress toward v6 being available on latest, including plugin migration and Node 20 support, at Are We V6 Ready.
Pre-release and upgrade path
The pre-release is available under a custom dist-tag on the next-major branch. The main branch continues to ship v5 through next, latest, and stable unchanged. To try v6 ahead of promotion to latest:
npm install sanity@next-major
Promotion to latest happens on Thursday, June 11.
Auto-updating studios need a manual bump to v6
Auto-updates can cross a major when it has no runtime effects (a Node.js version bump, for example), but v6 changes runtime behavior, so it won't roll out automatically. To upgrade, set your sanity dependency to ^6.0.0 and redeploy. Read Understanding the latest version of Sanity to learn more.
Still on v4?
v5 brought 20–30% faster editing (React Compiler), an incoming references inspector, much better TypeGen, smart typography on by default in the Portable Text Editor, and a stack of editor quality-of-life additions. The only breaking change is the React 19.2 baseline, so for most teams the upgrade is npm install sanity@latest.
Questions? Find us in the Sanity Community Discord or check the changelog when v6 ships.