✨Discover storytelling in the AI age with Pixar's Matthew Luhn at Sanity Connect, May 8th—register now

Experimental feature: Spaces

A feature request we often get is the ability to switch between datasets from within Sanity Studio. This has a number of usages:

  • Managing multiple departments within the same organization, each with their own, separate datasets, but all sharing the same schema.
  • Modifying an existing schema type and testing how it works using a staging dataset.
  • Using the same studio across multiple projects with separate sets of both documents and users.

To facilitate this, we are proposing "spaces". A space is simply a mapping from a name/title to an API config. Spaces can be configured in your studio's sanity.json (under the __experimental_spaces key). Here's an example:

{
  "project": {
    "name": "Studio with spaces"
  },
"__experimental_spaces": [
{ "name": "production", "title": "Prod", "default": true, "api": { "projectId": "ppsg7ml5", "dataset": "production" } }, { "name": "staging", "title": "Staging", "api": { "projectId": "ppsg7ml5", "dataset": "staging" } } ], "//...": "..." }

This will render a dropdown to switch between spaces in the studio:

Switching to another space will connect to the dataset configured for that space.

Disclaimer: Experimental feature

Did we mention that this is an experimental feature? That means it may or may not become a feature in its current form. But we acknowledge the need for a feature that supports the above use cases.

Found bugs / have feedback?

Please. Do let us know, either by filing an issue on GitHub or ping us on Gitter.

List of things we'd love to get feedback on in particular:

  • Naming things is hard. Is spaces a good word the feature? Maybe configuration is better? Suggestions?
  • Would you expect to be able to search for content across spaces? Currently thats not possible.
  • UX considerations: Would you expect to use one client to query for data across spaces, or would you typically configure one frontend per space.
  • Other issues?

Was this article helpful?