Get on the same page: Introducing Presence

Written by Even Westvang

Presence means you can now view and work alongside your teammates, right inside of the Sanity Studio. See the friendly faces you’ve been missing, all in sync, all on the same page.

Structure, modify, and deliver your content live and collaboratively. No worries about overwriting, locking each other out, or scaring someone with a ghostly edit.

PortableText [components.type] is missing "callToAction"

Upgrade to the latest version to bring new faces to your own studio:

sanity upgrade

Presence marks the introduction of collaborative features for the Sanity Studio. We can't wait to show you what we have in store.

Use Presence in your own components

We built this with your dreams in mind. We made sure to ship extension points so that you can bring presence into your custom input components. You can learn about them in the documentation for the Presence API, and talk to us in the community if you have questions or have shipped an update to your plugin.

import {FieldPresence} from '@sanity/base/presence'

function MyCustomInput(props) {
  const {type, value} = props
  return (
    <div>
      <FieldPresence />
      <input type="text" value={value} /*...*/ />
    </div>
  )
}

This release marks the first iteration of moving the Studio’s API consumption to Web Sockets. Most of the real-time machinery in the Studio today happens with Event Stream and “regular” HTTP requests. Moving to Web Sockets means that the Studio will consume fewer API requests.

PortableText [components.type] is missing "starterTemplates"