# Plugins

Fast by default and optimized for discovery. Server Components, the React Compiler, and hyper-optimized SEO come standard so pages load fast and rank well.

## 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.

![hero-light.jpg](https://cdn.sanity.io/images/s6kuy1ts/production/529d8acd07ad7194739e314d71f06bd8c95cf503-3408x2160.jpg?w=1600&fm=webp&q=80&auto=format)

- [Get the template](https://robotostudio.com?ref=template-sanity)
- [See the plugin config](https://github.com/robotostudio/turbo-start-sanity)

- ![GCN](https://cdn.sanity.io/images/s6kuy1ts/production/42ef7d6affff336cd513838ff02c841aad89ea9b-98x28.svg?w=1600&fm=webp&q=80&auto=format)
- ![Session](https://cdn.sanity.io/images/s6kuy1ts/production/879b4e1238fb226a42632f735546711f6aeaf16f-104x22.svg?w=1600&fm=webp&q=80&auto=format)
- ![Tabby](https://cdn.sanity.io/images/s6kuy1ts/production/8756d14ea8771337c1e8e1e8636bbe3b286a515b-84x27.svg?w=1600&fm=webp&q=80&auto=format)
- ![Discovery](https://cdn.sanity.io/images/s6kuy1ts/production/9513f0de80639cee872afa97b66bd66b8299516f-113x24.svg?w=1600&fm=webp&q=80&auto=format)
- ![Helix](https://cdn.sanity.io/images/s6kuy1ts/production/d084be5e8e200d5f3a8d5b4e77be855352450c78-86x24.svg?w=1600&fm=webp&q=80&auto=format)
- ![Serch](https://cdn.sanity.io/images/s6kuy1ts/production/1b041b49b5d9f8f62cffb3f0240de7635f79ace6-102x24.svg?w=1600&fm=webp&q=80&auto=format)
- ![Synacti](https://cdn.sanity.io/images/s6kuy1ts/production/8637af8ce057a4789a97b1dfbb446440e2a472dc-100x24.svg?w=1600&fm=webp&q=80&auto=format)
- ![Teckro](https://cdn.sanity.io/images/s6kuy1ts/production/4a1aeb7e444fc1a0f39c2eb9c7f2104c2e57d4a7-92x28.svg?w=1600&fm=webp&q=80&auto=format)
- ![Topaz Labs](https://cdn.sanity.io/images/s6kuy1ts/production/d66c42e4c03ed4dca9136ec35b67674d3c733579-141x25.svg?w=1600&fm=webp&q=80&auto=format)

**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.

- [GitHub](https://github.com/robotostudio/turbo-start-sanity)
- [Reddit](https://www.reddit.com)
- [X \[Twitter\]](https://x.com/studioroboto)
- [YouTube](https://www.youtube.com/@robotostudio)

**FAQ**

## Working with plugins

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

### How do I add a new block?

Add a folder under `packages/sanity-blocks/src/` and export its schema from `blockSchemas` — the Studio picks it up automatically. Run `pnpm type`, add the projection to `pageBuilderFragment`, then register the component in `renderBlockComponent`.

### 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 type` from the repo root — it regenerates `packages/sanity/src/sanity.types.ts`. To refresh the schema snapshot first, run `pnpm extract` inside `apps/studio`.

### Where do shared UI components live?

Generic primitives like buttons and inputs live in `@workspace/ui`. Page-builder blocks live in `packages/sanity-blocks/src/<block>/index.tsx` and are rendered by `apps/web/src/components/pagebuilder.tsx`.

### How do I deploy the Studio?

Run `pnpm run deploy` from `apps/studio`. The first deploy has to run locally so Sanity can create the hosted Studio and return an app ID — save it as `SANITY_STUDIO_APP_ID` for later deploys.

### Why do I need to set CORS origins?

Sanity blocks unknown origins, so add your production and preview URLs under API > CORS origins in sanity.io/manage. Enable "Allow credentials" for live preview.

### What environment variables do I need?

The web app needs your Sanity project ID, dataset, API version, Studio URL, and read/write tokens — all Zod-validated by `@workspace/env` at startup. The Studio reads its own `SANITY_STUDIO_*` values; see the `.env.example` in each app.

### How does live preview work?

The Studio's Presentation tool shows your live site next to the editor. Click any element to jump to its field, and edits appear instantly without refreshing.

### Can editors build pages themselves?

Yes. Pages are assembled from reusable blocks like hero, FAQ, and CTA. Editors add, reorder, and edit them in the Studio with no code.

### Does it support multiple languages?

No. This starter has no localization set up — every document type is single-language.

[Roboto Studio writes them for a living](https://robotostudio.com?ref=template-sanity)

## 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.

- [Get started now](https://sanity.robotostudio.com/documentation)
- [Work with Roboto](https://robotostudio.com)
