📆 Don't miss our Sanity Showcase virtual meetup on March 20th!

What's New - March 2025

Content Releases launch, Live Content API in Presentation, Markdown shortcuts, Community Contributions, Code && Content podcast & Lady Gaga webinar.

  • Evelina Wahlström

    Evelina Wahlström

    Technical Product Marketing Manager at Sanity

Published

Welcome to the monthly edition of "What's New"! I'm Evelina Wahlström, Technical Product Marketing Manager and recent addition to the Sanity team (just over a month in!). On the first Monday of each month, I'll guide you on the most exciting developments across the Sanity ecosystem.

As always, the engineers at Sanity HQ have been hard at work, improving our existing features and building exciting new capabilities. We're also debuting Code && Content, a new podcast series hosted by our very own Simeon.

For demos of Markdown shortcuts, Content Releases, and Live Content API features (now in Presentation, as well as how you can get this working in your framework of choice), check out the video below, where I was fortunate enough to get a preview as demonstrated in demos together with Christian Grøngaard, Cody Olsen, and Pedro Bonamin.

If you're more old school and prefer reading over YouTube—and/or want to catch everything we've been up to this month—let's get to it!

What we've been cooking 👨‍🍳

Content Releases is now available

As of this month, we took Content Releases out of private beta and launched it for projects on the Growth plan and up.

Speaking from my experience at a travel tech company where Cyber Week was our biggest sales period—Content Releases would have been a game-changer. You know the stress if you've ever managed Black Friday and Cyber Monday campaigns (with that non-working weekend awkwardly sitting between them). Now, you can work on both campaigns simultaneously without blocking the day-to-day content work, setting each to launch at its specific time without setting that dreaded 5 AM Monday alarm to swap content manually. Huge relief!

Content Releases is enabled by default in the latest Studio version for eligible plans. For a comprehensive overview, read our launch post No More 'DO NOT PUBLISH': Introducing Content Releases. But in short, Content Releases enable teams to:

  • Group multiple content changes into coordinated releases
  • Publish and unpublish content in coordinated releases
  • Preview and toggle stacked and individual releases
  • Schedule precise publishing times or mark them as "ASAP" or "undecided"
  • Automate and integrate release logic through APIs
  • Validate content and references automatically
  • Roll back changes instantly if needed (requires Enterprise plan)

In addition to the launch post, I sat down with Pedro to talk about the release (pun intended) of Content Releases. He walks through a demo he's built so you can better understand the concepts of stacked releases and perspectives and how, as explained above, your editing life should be smoother, thanks to it. For full video, watch here.

Visual Editing is now powered by the Live Content API

The Presentation tool now uses the Live Content API to drive the Live Mode experience in integrations like @sanity/react-loader, @sanity/svelte-loader, @nuxtjs/sanity, and @sanity/core-loader.

Here's how this makes a real difference:

  • Eliminates the need for polling every two seconds
  • Only refetches queries when it's actually needed
  • Reduces memory usage and network load
  • Improves main thread performance

The new architecture is particularly valuable for complex queries where client-side prediction of changes would be impractical.

When I sat down with Cody to discuss this feature, he walked me through its evolution from concept to current implementation. The performance gains are genuinely impressive. After seeing them in action and how they improve the developer experience, I think you'll be as excited as we both were when discussing this. For the full video, watch here.

Live Content API is now available in the framework you like!

Beyond Next.js, Cody and the team have created example implementations for frameworks like Astro and Vue. During our chat, he showcased these examples with a slick Apple Vision Pro visualization that brings the concept to life. Even if the examples don't cover your specific framework, the underlying principles can be adapted to virtually any modern framework.

Want to implement Live Content in your projects? This demo repository includes code examples to get you started, and you can find the complete repository of framework examples. If you have questions or ideas about the API, join the conversation in our #live-by-default channel in the community, where the team is eager to help you succeed. For full video, watch here.

Portable Text Editor enhancements

We're continuously improving our Markdown shortcuts to the Portable Text Editor, making rich text formatting more intuitive and efficient. Now, you can seamlessly switch between heading styles and text formatting without interrupting your writing flow. For example, you can quickly transform text into different heading levels within the editor with Markdown syntax. Some of the most useful ones are listed below:

  • Headings 1-3
    • # for H1
    • ## for H2
    • ### for H3
  • **text** or __text__ for bold (maps to 'strong' decorator)
  • *text* or _text_ for italic (maps to 'em' decorator)
  • Lists:
    • - & space will create an unordered bullet point list, which is how this list was created!
    • 1. & space will create an ordered list.
  • > + space will create a quote.

Want to see these Markdown shortcuts in action? I had a great chat with Christian, who gave me all the tips and tricks for using them effectively. He even dropped some hints about exciting new shortcuts coming soon—not to be missed! For full video, watch here.

AI Assist Improvements

We've enhanced our AI Assist capabilities with several new features.

Translation style guide

You can now configure a style guide for translations, ensuring consistent tone and handling of specific terms:

// sanity.config.ts
import { defineConfig } from 'sanity'
import { assist } from '@sanity/assist'
/* other imports */

export default defineConfig({
  /* other config */
  plugins: [
    /* other plugins */
    assist({
      translate: {  
        styleguide: `Be extremely formal and precise. Translate as if you are Spock from Star Trek.`,  
      }, 
    }),
  ]
})

The style guide is limited to 2000 characters and only available globally (so for all translations).

Field Translation Max Depth

By default, field-level translations translate six "path segments," that is, "nested fields". If you need the AI Assist to translate fields that are even deeper, you can now adjust this:

// sanity.config.ts
import { defineConfig } from 'sanity'
import { assist } from '@sanity/assist'
/* other imports */

export default defineConfig({
  /* other config */
  plugins: [
    /* other plugins */
    assist({
      translate: {  
        field: { maxPathDepth: 12 },  
      }, 
    }),
  ]
})

Bug fixes

Unfortunately, we all know that bugs are an inevitable part of the developer life — but below are some of the noticeable ones that were squashed (!) in the last month:

  • Fixed a regression in the Portable Text Input that could lead to data loss when user input was entered concurrently with incoming changes
  • Resolved issues with document template initialization
  • Improved performance for complex schema structures
  • Fixed error in the Content Releases activity panel when retrieving edit events
  • Internal document types no longer appear in validation results in the CLI
  • Fixed an issue where write tokens were not being set in .env file after initializing a remote template
  • Fixed an issue where splitting a Portable Text block right before an inline object might cause the editor to crash
  • Fixed an issue where using Shift+Enter to insert a line break in the Portable Text input would not work as expected in Safari
  • Updated the @sanity/ui package version to address framer-motion warnings during studio interactions

If you keep an eye out on the changelog every now and again, you'll hear about the bug fixes as soon as they are resolved—maybe even before they've had time to bother you!

Brain food 🧠

Looking for inspiration to fuel your developer creativity? We've got you covered. Dive into these thought-provoking blog posts and podcast episodes that explore new ideas, solve common challenges, and might just spark your next brilliant solution.

Blog posts

How to make Portable Text AI-friendly

Hands up if you use AI to be more efficient while coding! Knut has written about how he leveraged LLMs to make Sanity Learn's content accessible to AI assistants through /llms.txt files. He walks through his experience and how to best structure your content to make it AI-ready - this is so you can easily peer program with your AI agent of choice.

Podcast episodes

Code && Content

My colleague Simeon has launched a new video podcast series, Code && Content—a must-watch (or listen) for anyone passionate about the intersection of code and content. If you’re reading this, that’s probably you!

The first two episodes are out now, featuring two of our very own developers:

Watch the episodes on YouTube or listen via your favorite podcast app. Subscribe to the RSS feed so you don’t miss upcoming episodes featuring both internal and external experts who share Simeon’s love for Code && Content.

For more structured content nerdery, check out Why Sanity?, where Simeon joins Nils Borgböhmer, Co-Founder and Head of Interaction Design at Dinghy, for a deep dive into content warehouses and structured content.

Community contributions 🌟

Our community continues to amaze my colleagues and me with their creativity and contributions! Here are some highlights from our #i-made-this Slack channel:

Plugins and tools

  • SoundCloud Input by Damian Rosellen: Connect your SoundCloud application and load tracks directly into your Sanity project. Check it out.
  • Async List by Chris LaRocque: A plugin for creating string fields that fetch their value. Explore the plugin

Schema types and components

  • Text Input with presets by Mitchell Christ: Add preset buttons/chips below your text input fields. See the schema
  • Next.js redirect schema with validation by Roboto Studio: Create and validate Next.js redirects directly inside your Sanity Studio. View schema
  • Conditional 'read-only' document input component by Paul Welsh: Control when document inputs are read-only. Learn more

Showcase Projects and Integrations

  • Built.js by Richard: A platform to simplify creating customizable Next.js websites with Sanity (think: themes and plugins like WordPress, but with Next.js). Check it out here.
  • Nitrogen with Sanity Connect by Rylan Harper: A Nuxt4 production-ready Sanity/Shopify template for medium-to-large scale storefronts. GitHub repository
  • Turbo Start Sanity by Roboto Studio: A foundational Next.js and Sanity implementation. Read the guide

Guides and Articles

  • Integrating external data sources with Sanity by Chris LaRocque: Learn the two most common patterns for integrating external data sources with Sanity. Read the guide
  • Forms with Sanity by Chris LaRocque: Explore common approaches for using forms with Sanity. Check out the guide
  • When does Sanity Enterprise make sense for your team? by Jamie Warburton and Hex Digital: Discover if and when you should consider upgrading to Sanity Enterprise. Read the article
  • Querying offline exported Sanity datasets with GROQ by Baccup: A tool to query exported .ndjson files. Learn more

Announcements

Sanity for startups program

Are you working at a startup and haven't yet tried Sanity? This is your chance! Get everything you need to manage and scale web and in-app content with 1-year free access to Sanity's Growth plan ($9K in value).

The Sanity Startup Program includes:

  • 50 user seats
  • Private Datasets
  • User Roles
  • Comments & Tasks
  • Scheduled Publishing
  • AI Assist
  • And more!

Eligibility requirements:

  • Fewer than 20 employees
  • Less than $5M in total funding
  • Not currently a paying Sanity customer
  • Available to portfolio companies of our investment partners

If your investor isn't listed as a partner, they can apply to become one! Click the link below to learn more about your best next course of action.

Join the program →

Events

Upcoming

Builder Talk: The Story Behind Lady Gaga's Digital Experience

  • When: March 6, 12:00 PM – 1:00 PM EST
  • Where: Streaming Online
  • Speakers:
    • Simen Svale (Co-Founder and CTO, Sanity)
    • Michal Klim (CTO & Partner, Commerce UI)
    • Melody Yung (Creative Lead & Founder, Yung Studio)

Join us to hear how Commerce-UI built a site that pushes creative limits while maintaining performance, powered by Sanity. We'll talk about the process of creating Lady Gaga's new digital hub and how structured content, real-time updates, and seamless commerce integration enabled a truly immersive experience.

Register for this event.

That's all for March! Remember to subscribe to our YouTube channel for more content, and stay tuned for next month's updates.

Have you built something cool with Sanity? Please share it with us on our Slack community in the #i-made-this channel!

Sanity