Extend the Studio to fit your team

Sanity plugins slot into the Studio without forking it. Add fields, tools and custom views from one config file, and review every change in a pull request.

GCN
Session
Tabby
Discovery
Helix
Serch
Synacti
Teckro
Topaz Labs
Extending the Studio

Plugins that earn their place

Everything is registered in one place, typed, and safe to remove — so the Studio stays yours rather than the template's.

Drop-in Studio plugins

Add a plugin to sanity.config.ts and it appears on the next reload. No ejecting, no patching the editor by hand.

Presentation tool

The Presentation plugin pairs the Studio with your running Next.js app, so editors see their changes in the real layout as they type.

Custom desk structure

Singletons, nested pages and previews are arranged through structure builder, so the content list mirrors how the site is actually organised.

Custom input components

Swap any field for your own React component when the default input does not describe the content well enough.

Help notes for editors

Ship Markdown guidance beside a schema so writers get their answers in the Studio rather than in a separate handbook nobody opens.

Safe to upgrade

Plugins are ordinary npm packages pinned in the workspace, so they upgrade and roll back like any other dependency.

Community

Swap plugin notes

Found a plugin worth installing, or built one yourself? The rest of us would like to hear about it.

FAQ

Working with plugins

What you can change in the Studio, and what happens when you do.

How do I add a new block?

Create it in packages/sanity-blocks/src/, run pnpm type, add its GROQ fragment, and register it in the page builder. The README lists the exact steps.

Can I customize the components?

Yes. They use Tailwind v4 with CVA variants, and the theme tokens live in globals.css. Edit the tokens to restyle everything, or tweak a single component's variants.

How do I update types after a schema change?

Run pnpm extract, then pnpm type. That regenerates the Sanity types your components rely on.

Where do shared UI components live?

Shared primitives live in the packages/ui workspace package (@workspace/ui) and follow the shadcn pattern: Radix primitives for behaviour, CVA for variants, Tailwind v4 for styling. Import them anywhere in the monorepo without copying files between apps.

Page-builder sections are separate: headless block components ship from @workspace/sanity-blocks, and the styled implementations you actually render live in apps/web/src/components/sections. Keep generic buttons and inputs in @workspace/ui, and keep anything Sanity-shaped in the sections folder.

Plugins worth installing

The Studio plugins and patterns we keep reaching for, written up as we find them.

A short email now and then. Unsubscribe whenever you like.

Make it yours

A Studio shaped around your content

Start from a Studio that is already configured, then add only the plugins your editors will genuinely use.

Customised Studios in production at

GCN
Session
Tabby
Discovery
Helix
Serch
Synacti
Teckro
Topaz Labs