What's New β May 2025 (ssr)
Written by Evelina WahlstrΓΆm
Missing Image!
Evelina from the product marketing team here with our May roundup of all the developments from the last month across the Sanity ecosystem.
We're only three days away from our biggest launch yet!
On Thursday, you'll find out what cake has to do with Content Operations. But most importantly, we're releasing new features (and products !) you can get your hands on soon.
It's also the perfect moment to join our new community space on Discord to watch it with us and ask all questions you may have. The Sanity team will be hanging out there during and after the premier.
Sign up for the premiere here β
Even though the launch is approaching quickly, our engineering team is always iterating and improving the product as you know it.
Due to the upcoming release, I am keeping things short and sweet in the video edition of this post.
- One of our co-founders, Even Westvang, joined me to speak about the new Sanity MCP Server
- James Warner shares his improvements to the beloved Studio Hotspot/Crop tool.
What we've been cooking π¨βπ³
Model Context Protocol (MCP) Server
Instead of finding, updating, or creating content yourself, you can now co-create this with your favorite AI Agent, using your voice!
Our new MCP server connects your Sanity content directly to AI agents like Claude and Cursor, letting you manage content through natural language conversations.
Knut and Even have put together an excellent blog post describing the origin of MCP and what it enables you to do in more detail. The post includes the two fundamental approaches you can use it for: Content Intelligence (knowledge is power, after all!) or Content Operations (get stuff done quicker!), and shares a ton of ideas for how you can use this yourself.
Learn more about the MCP Server β
In short, here is what our MCP server enables you to do:
- Query your content using natural language instead of writing GROQ
- Create and update documents by describing what you want
- Organize content releases and schedule publication
- Explore your schema without digging through documentation
- Get information about your projects
If you want to stop reading (I wouldn't blame you), you can go directly to the source of this (i.e., GitHub) and get started in minutes.
Permission to do that here β
If you are like me, a generalist specialist, and would like more context before diving in, I sat down with Even to discuss MCP as a whole - what it is, what it/you can do, and its future.
Go here for the full conversation β
Image hotspot & crop improvements
James Warner and the Creator Experience Team have been focused on improving this beloved feature, smoothing out the interactions, and increasing accessibility (you can use your keyboard to navigate this now!).
The image schema options now also support a hotspot object for configuring the image hotspot tool. This now enables custom aspect ratios for the crop previews to be applied through configuration.
defineField({
name: 'hotspotImage',
title: 'Hotspot image',
type: 'image',
options: {
hotspot: {
previews: [
{title: '2:1', aspectRatio: 2 / 1},
{title: 'Square', aspectRatio: 1 / 1},
{title: '4:5', aspectRatio: 4 / 5},
{title: '9:16', aspectRatio: 9 / 16},
],
},
},
})
James was kind enough to jump on a call with me and showcase these improvements.
Go here to watch the full demo β
GROQ-powered webhooks for document versions
π Webhooks now see your versions.
Content Releases just got increasingly more powerful, as you can trigger webhooks when document versions change, not just drafts and published documents. This means your automated workflows can respond to content changes before publishing.
Want to set it up? Just check "Trigger webhook when versions are modified" in sanity.io/manage.
User Experience enhancements
No more awkward "click in" or space bar tapping to get going in the Portable Text Editor in Studio. Keyboard users can finally scroll and tab through forms naturally without the editor hijacking their focus. In our opinion, it is a small but mighty change that makes a huge difference in accessibility and workflow.
That isn't the only improved UX...
- Check your Studio version at a glance. The version dialog under "Help and resources" now shows more than just numbers. It includes valuable context about your current version and direct links to upgrade when needed. No more wondering if you're running the latest version.
- Find teammates faster in Content Releases. See someone editing a document? One click on their presence avatar now takes you directly to the exact version they're working on and updates your perspective instead of defaulting to draft. Less confusion, more collaboration.
- Document forms improvements. Add a tooltip to make the schema-type description accessible in the UI.

AI Assist improvements
A dynamic styleguide is now available to allow your editors to manage this through a document.
The function is passed a context object with Sanity client and the current documentId and schemaType. Use it as below:
assist({
translate: {
styleguide: ({client, documentId, schemaType}) => client.fetch('* [_id=="styleguide.singleton"][0].styleguide')
},
})
AI Assist now also supports these previously ignored types:
- boolean
- number
- boolean arrays
- number arrays
- slug β Assist will not do uniqueness checks
- url β Assist will try to skip url fields if the instruction does not contain details about what the URL should be.
- date
- datetime
Since language about date and time is time-zone and locale-dependent, Assist will now send the browser's timezone and locale as part of the request by default. This allows instructions to use language like "today at noon" and "next year" and still get dates and date times as expected.
Multi-origin Support in Presentation Tool
Our Presentation Tool now handles multiple preview URLs in a single instance. This unlocks better support for those of you with multiple domains setups, like marketing sites and websites that share the same dataset and schema.
- Add multiple origins with the new
allowOrigins
option - Configure preview URLs dynamically. No more hardcoding!
- Async configuration support for
previewUrl.initial
andpreviewMode
- Say goodbye to deprecated
previewUrl.origin
andpreview
options
This is the first milestone towards an improved experience, with multi-origin editing experience in Presentation. The team has promised more improvements coming soon, like autocomplete and an enhanced UI for switching between origins.
Notable bug fixes π
- Fixed an issue where the latest Studio release (v3.86.0) was not being correctly pushed to auto-updating studios
- When using content releases, an issue where references to documents marked for unpublish would not cause referential errors has been resolved
- The useDocumentLocations hook now uses perspectiveStack and should work as expected for teams using the Content Releases feature
- The Portable Text Editor should no longer show reduced performance in long documents after adding comments
- Restored the intended function of the for directUploads configuration parameter of the Form API
- Fixes a bug that stopped presence indicators from displaying in the document list
- Fixes an issue where the presentation resolver would crash when using published perspective
- Fixes an issue where in some cases opening a document throws a set state error
- Fixes an issue that stops the studio from loading when the URL does not include a trailing slash immediately preceding a query string
- Upgrades the Portable Text editor (PTE) to fix an issue where toggling full-screen on a PTE field with a comment would cause an error
- Fixes an issue in the "Review Changes" pane which showed all fields in a draft as being erased after publishing
- Fixes document validations in releases to show correct errors when referencing documents marked for unpublishing
- Fixes an issue where the
sanity build
command would fail if theversion
parameter in the Studio'spackage.json
was missing - Fixes an issue where
sanity init
couldn't be run in Next.js projects in unattended (-y
) mode
Brain food π§
Code && Content Episodes
Our video podcast series, "Code && Content," hosted by Simeon Griggs, has released two new episodes exploring the intersection of code and content.
Subscribe to our YouTube channel so you don't miss an episode, or to the RSS feed if you prefer audio only!
Aaron Francis | Developing your personal API
Aaron Francis, founder of Try Hard Studios, joins the Code && Content podcast to discuss the contrast between internal and independent content production, being your authentic self without projecting your whole self, and the role of human education in the age of all-knowing AI.
Evelina WahlstrΓΆm | From engineer to content creator
This month, Simeon asked me to join the Code && Content Podcast. As you probably can tell from the first few minutes, I was very nervous and talked too fast, as this was my first podcast ever.
But if you are curious to hear about changing from a full-time Engineer to a part-time Engineer, full-time Content Creator / Generalist Specialist, self-validation, and how I made a pact with myself to end imposter syndrome, listen via the link below.
Community contributions π
The Sanity community always inspires us with their creativity! Here's what they've been building:
Plugins and Tools
- Sanity Image Asset Picker by Simon Gowing: User can browse and bulk-select image assets to add to an image array field
- Sanity Page Blocks Plugin by James Trenda: A collection of open-source Sanity page block plugins designed for modular content modeling
- Sanity-rs by Arkar Myat: A Rust port of the
@sanity/client
with native async querying and parsing support for Rust projects - Vercel Deploy Plugin by Nick DiMatteo: Recently released in beta for the latest Studio packages
Articles and Guides
- How we use .mdc rules by Roboto Studio (Jono and Snehil Tripathi): Creating rules for AI to make sure it doesn't go 'off the rails'
Showcase Projects
- CircuLaw by Theo Campbell: Regulations for a circular economy
- Jeunesse Volontaire by Chakib Ouzane: A website for an environmental organization, built with SvelteKit + Sanity
- Baltic Village by Andreas Straub: A site featuring a section-based page builder, form builder, blog, and more
- ImageToBlackAndWhite by CJ Z: Transform color images to classic black and white instantly
- ImageToAny by CJ Z: Transform images into perfect AI prompts for creative generation
- JRA Website by Avco: Showcase website for John Robertson Architects, London
Templates and Starters
- Sane Kit by Vinicius Leal: A starter template combining Next.js, Sanity, and TWBlocks with internationalization support
- Sanity Astro Club by Soufiane: A free Astro template for showcasing and selling digital artworks or any other digital products using Polar.sh checkout links
Upcoming events
Spring Release
Final reminder to join us this Thursday for our big launch event!
Join the watch party in the #live-event-chat channel in our new community space on Discord and hang out with me, Simeon, Knut, our co-founders, and the developers behind the features and products. This is the perfect opportunity to ask all your questions!
When: May 8th, 08:00 AM PDT | 11:00 AM EDT | 5:00 PM CET
Where: Online
The Sanity Showcase Meetup
We're hosting our next show-not-tell meetup, where developers in the Sanity ecosystem will share their challenges, solutions, and lessons learned. This is a great opportunity to see real-world examples of Sanity in action and connect with other developers.
The lineup includes a deep dive into the new App SDK (releasing this Thursday!) by Simeon Griggs (on his birthday, no less!), plus a look at scaling localized content with Matt from loveholidays, using the internationalization plugin, automated workflows, and smart schema design.
When: May 22nd, 12:00 PM β 1:00 PM EDT
Where: Online
Recent events
How Powerhouse architected for content reuse and editor autonomy
On April 17, we skipped the slides and went straight into Powerhouse Museum's Studio to see how they built a system that works across physical and digital spaces. The Powerhouse team showed us:
- How they structure content once for reuse across exhibitions, websites, and digital displays
- Custom editing tools that help their team work faster and avoid errors
- Role-based views that show each team member exactly what they need
- A component system letting editors create immersive experiences without developer help
With over 500,000 objects, Powerhouse needed a content system that scales. Their solution empowers editorial teams while enabling seamless content reuse across web, signage, and upcoming digital installations.
Go here to watch the recording β
Stay connected
That's all for May!
Have you built something cool with Sanity? Please share it in our #showcase channel in our new community space!
As I mentioned earlier, we are slowly but surely moving to Discord. Join in on the fun early, and let us know your thoughts in the #feedback channel.