Sanity Studio v3.77.0: Introducing Content Releases

✨ Highlights

Content Releases

Say goodbye to late-night content deployments and "DO NOT PUBLISH" in titles. Content Releases introduces a better way to plan, preview, and coordinate content changes – working the way your code deployments do. Available for Enterprise plans. Read the launch post to learn how teams use it to transform their content workflows.

Gotcha

If you have installed AI Assist, you must ensure it has been updated to the latest version (3.1.1 or above). We recommend upgrading Vision and other official Sanity Studio plugins too.

npm i sanity@latest @sanity/assist@latest @sanity/vision@latest

Enable/Disable Releases

Content Releases is enabled by default in this version of Studio and beyond. You can disable it by adding the following to your studio configuration:

// sanity.config.ts|js
// ...
export default defineConfig({
// ...
releases: {
enabled: false
}
})

To ensure compatibility, we suggest upgrading all official Sanity plugins and tools, such as Presentation and AI Assist, to the latest versions.

Protip

If you rely on Scheduled Publishing, we suggest moving to Content Releases. Enabling both can cause odd interface behavior and a confusing experience for content creators. See the Scheduled Publishing documentation for details on disabling it.

Impact on customized studios, libraries, and API users

This release pairs with the release of API version 2025-02-19. The two involve some breaking changes that affect highly customized studios, and potentially third party libraries. Here are areas to look out for when evaluating your codebase.

API version 2025-02-19 includes changes to the perspective system. Starting with this version, the majority of APIs and official clients now use published as the default perspective.

The raw perspective, previously the default, now returns published, draft, and version documents.

If your codebase relies on checking paths for drafts.**, this could cause unexpected behaviors.

Content Releases and API version 2025-02-19 and above introduce the versions.** ID prefix. We suggest relying on perspectives instead of path matching whenever possible.

We've introduced a utility library, @sanity/id-utils, to help handle multiple ID formats.

You can opt in or out of receiving versions.** documents as needed by adjusting your API version, either in the client or within Structure Builder's DocumentList.

If using client.listen, you'll need to forward includeAllVersions=true in order to listen for version and draft document changes.

Plugin authors that wish to support Content Releases will need to use 2025-02-19 or later as the API version. See the plugin migration guide for additional details.

Ensure any custom implementations of the client in Studio that make use of useClient set the correct apiVersion and perspective (2025-02-19 and raw respectively) as needed to support releases and version documents.

Support for versions in webhooks is coming in the future, but not yet supported. Webhooks can query release state, but not the version documents themselves.

Many APIs that rely on perspective have been updated. See the API v2025-02-19 changelog for additional details and suggestions.

Other improvements

Some success toast messages have been removed to streamline the Studio UI. These removals have been made where there is a reasonable expectation the operation will succeed immediately and reliably (for example, when copying a value to the clipboard). Error toast messages remain as they were before.

Adds the v2025-02-19 API version to Vision's dropdown

It's now possible to drag and drop inline objects in the Portable Text Input

Improved document header for documents with many versions