Studio

Configuration API

Improved document sync notification, Copying Document URL, and more

v3.56.0

✨ Highlights

Improved document sync notification

Fixes an issue where the syncing document notification would sometimes remain on the screen indefinitely, even after the document was no longer visible. The toast is now dismissible, improving the user experience when working with synchronized documents.

Sync Document Toast
Syncing Document Notification

Copy document URL to clipboard

A new feature has been added to the document pane. It allows users to easily copy the current document's URL to their clipboard, making document sharing with colleagues and collaborators more convenient.

Copy Document URL affordance
Copy Document URL

Ending the "Array Tree Editing" beta

Thank you to everyone who participated in the "Array Tree Editing" beta. Based on your feedback, we are ending this experiment as we continue to explore better ways to navigate nested structured.

This means that the beta.treeArrayEditing in the Studio configuration and treeArrayEditing option for the array schema type are now deprecated.

🐛 Notable bugfixes

  • Optimized rendering in Presence: We’ve optimized how presence changes are handled, reducing unnecessary re-renders in the Studio. This enhancement improves overall performance when multiple users are working on the same document.
  • Respect for --no-auto-updates flag in CLI: Fixed an issue where the CLI would not respect the --no-auto-updates flag, ensuring that this configuration setting now behaves as expected.
  • Improved feedback when extracting schema: The schema extraction process now outputs the file path, providing clearer feedback and making it easier to locate the saved schema.
  • Constrain size for date picker popover: Added a prop to constrain the size of the date picker popover in the DateTimeInput UI component, providing more control over its appearance, especially in modal contexts.

Install or upgrade Sanity Studio

To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.

If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.

Upgraded and refreshed Studio UI

v3.23.0

This update significantly upgrades the Sanity Studio user interface (UI) and Sanity UI. The goal here is to align it with what you expect for modern tooling and reduce elements where possible to make it easier and smoother. We also wanted to bring more consistency in styling and interactivity.

The updated Sanity Studio UI showing document lists and the Portable Text Editor
The updated Sanity Studio UI

At a high level, we have:

  • Updated the navigation bar with fewer visual elements
  • Reduced visual noise in document lists and made it easier to discern between documents and folders
  • Made typography, line heights, and styling more consistent
  • Updated color themes to add more vibrancy where interactive elements need to stand out
  • Cleaned up the document form and added a large title to make it easier for editors to discern where they are
  • Made dates human readable (exact date time accessible on hover)
  • Added simple animations to improve how it feels to use the Studio
  • Removed the components.studio.logo API to more clearly signpost what workspace you are in (you can still add custom logos with workspace icons)
  • Done the groundwork to simplify branding and theming the Studio
  • Updated Sanity UI with new studio-specific UI components and better support for the new localization features

Upgrading to the new UI

To install this upgrade (v3.23.0) run:

npm install sanity@latest

If you have used Sanity UI (@sanity/ui) for Studio customization, you should install the beta of the new major release, too.

npm install @sanity/ui@beta

Test it out

We have worked hard to identify edge cases, but this update might break with customizations, and plugins that use and haven't updated their Sanity UI dependency might look a bit out of place. We recommend you test out the upgrade on a branch and preview deployment.

If this upgrade for some reason doesn't work with your current Studio, you can downgrade to v3.22.0 (and minor patch releases for it). Edit package.json and run npm install:

{
  //...rest of package.json
  "dependencies": {
    "sanity": "^3.22.x"
  }
}

If you have to do this, tell us what doesn't work for you in an issue on GitHub.

Tell your team!

This upgrade changes how the Studio feels and looks; in some cases, it moves affordances that your content team might have used to. We think this upgrade improves the editorial experience, but it is still good to inform your team that this change is coming. And use that opportunity to teach them about keyboard shortcuts like cmd + K / ctrl + K to open the search bar.

Plugin maintainers

If you are a plugin maintainer and want to support this upgrade, then you can add ^2.0.0-beta to the peer-dependency range of @sanity/ui:

{
  //...rest of package.json
  "peerDependencies": {
    "@sanity/ui": "^1.0 || ^2.0.0-beta"
  }
}

This will make it stay compatible with future stable/non-beta releases of @sanity/ui@2.x.

Migration and deprecations

This release deprecates some parts of the Studio Customization Framework.

Custom Studio logo component

The studio.components.logo are no longer rendered. For custom logos, use the icon property in the workspace configuration instead:

// sanity.config.ts
import {defineConfig} from 'sanity'
import {RobotIcon, RocketIcon} from '@sanity/icons'
import {deskTool} from 'sanity/desk'
import {schemaTypes} from './schemas'

export default defineConfig({
  projectId: '<projectId>',
  dataset: 'production',
  name: 'Production',
  title: 'Default Workspace',
  icon: RobotIcon,
  plugins: [deskTool()],
  schema: {
    types: schemaTypes,
  },
})

Tool icon

Tool icons are no longer rendered; only the tool name is used in the navigation bar. There is no workaround for this.

Menu item group title

The Structure Builder API has allowed for a menu group title to be set. This is no longer displayed.

Improvements and bugfixes

v3.15.0

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

✨ Highlights

  • Adds new token login method for rare cases when the more secure cookie approach is not viable/wanted
  • Enables specifying authentication options using an object instead of createAuthStore()
  • Adds new is_defined filter to GraphQL APIs, mirroring the defined() function in GROQ. GraphQL APIs will have to be re-deployed to enable the new filter.

🐛 Notable bugfixes

  • Improves performance when fetching projects list as part of the sanity init CLI command
  • Fixes an issue that would give intermittent validation errors for valid string values when using a regex with global flag
  • Fixes an issue where references to undeclared document types would never load
  • Improves error UIs for reference values
  • Improves the changes pane to show path line and change indicator correctly for the following field types:
    • Array of strings (array of type string)
    • Array of tags (array of type string with layout: 'tags')
    • Array of strings (array of type string with options.list)
    • Array of emails (array of type email)