No More 'DO NOT PUBLISH': Introducing Content Releases

Written by Even Westvang

Picture this: Your team is preparing for next month's major product launch. The marketing team must update the homepage, product pages, and documentation. Meanwhile, your content editors must keep publishing regular blog posts and updates. Your developers are building new features and want to coordinate the content changes with their code deployments.

The content choreography of this multi-dimensional scheduling dance quickly feels overwhelming:

Does this sound familiar? We've seen teams resort to spreadsheets, late-night publishing sessions, and document titles that say "DO NOT PUBLISH UNTIL THURSDAY."

We have been there, too. That's precisely why we built Content Releases. All the documents and this blog post are published as releases (because the proof is in the eating of the pudding, right?).

Introducing Content Releases

Today, we're making Content Releases available on the Growth plan and above, a powerful new feature in the Sanity Content Operating System that simplifies everything related to timed and bundled content changes.

Content Releases enables teams to:

A screenshot of a content management system (CMS) interface for Sanity.io’s website, displaying a “Content Releases Launch” page. The page lists a collection of document changes for a public beta release. The interface includes a structured table with columns for “Action,” “Type,” “Title,” and “Edited.” Each row represents a document or API change, indicating whether it was added or changed, along with metadata like document type and last edit time.  Key elements visible: 	•	The release is titled “Content Releases Launch” and was scheduled for Feb 24, 2025, at 2:51 PM. 	•	Multiple API and article updates are listed, with some marked as “Add” and others as “Change.” 	•	Documents include topics such as “Content Releases API,” “Actions API,” “GraphQL,” “Functions,” and “IDs and Paths.” 	•	The bottom right corner has a “Schedule release…” button. 	•	A sidebar with navigation options like “Structure,” “Vision,” “Media,” “Videos,” and “Embeddings” is visible at the top.

Content Releases as your publishing platform

Content Releases is a platform feature, which means that it's available as a user interface, APIs, and data models. You can build sophisticated release workflows that integrate with your existing tools and processes. For example, you can trigger releases based on e-commerce inventory updates, coordinate content deployment with feature flags, or sync releases across multiple Sanity projects.

Content Releases is available for everyone on the Growth plan and up. It includes 2 concurrent releases per organization. Contact your Sanity representative or the sales team through our form if you need more than two.

Go to our documentation to learn more about configuration, the user interface, and API.

Key Features

Content Releases comes with a range of useful features to ensure confident publishing and coordination:

Who benefits? Everyone on your team

Let's look at how different teams benefit from Content Releases:

For developers:

For content editors:

For product owners:

For technical leaders:

How Content Releases works

Content Releases introduces a simple but powerful concept: the ability to group multiple document changes into a single unit that can be previewed, validated, and published, and unpublished together – giving you complete control over your content's lifecycle.

Release management for Sanity Studio

Here's how it works:

  1. Create a release: Give it a name and optionally set a target date.
  2. Add documents: Select which documents will be part of the release.
  3. Make changes: Edit the documents within the release context.
  4. Preview and validate: See exactly how everything will look when published.
  5. Schedule or publish: Either publish immediately or set a future date.

What makes Content Releases especially powerful is the concept of release layering. You can plan multiple releases, each building on top of the other. This means you can:

The system automatically handles the complexity of managing these overlapping changes, ensuring that everything appears exactly as intended when published.

Comprehensive API support

We've built Content Releases to be powerful yet flexible, with comprehensive API support that lets you integrate release management deeply into your workflows. These new capabilities brings important changes you'll want to know about.

Through relevant APIs, you have programmatic control over every aspect of releases:

Actions API

A key part of this release is our enhanced Actions API, which makes publishing in the studio a true platform feature. This addresses many long-standing issues by providing a unified, reliable approach to content operations throughout the content lifecycle. The Actions API gives developers precise control over the entire publishing process, from draft creation to scheduling and coordination.

Perspectives

Think of Content Releases as adding a new dimension to your content—instead of just "published" and "draft," we now have an entire spectrum of possible future states. To support this, we've made your releases queryable using Content Lake's Perspectives.

GROQ

We've also added some powerful new GROQ functions to help you work with releases:

Breaking changes to be aware of

Now, here's the part that requires some attention, especially if you're working with custom implementations:

Here's a practical example of how this might affect your queries:

Internal server error