# Marketplace

Sanity, Next.js, Turborepo, Tailwind, and Vercel — Turbo Start Sanity connects the modern content stack so you don't have to glue the tools together yourself.

## Explore the marketplace of Sanity plugins

Sanity, Next.js, Turborepo, Tailwind, and Vercel — Turbo Start Sanity connects the tools you already reach for so you don't have to glue them together.

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

- [Get started](https://sanity.robotostudio.com/documentation)
- [Browse the code](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)

**Works with**

## Everything already talks to everything

The integrations that usually take days to configure come pre-wired and type-safe.

### Sanity Studio v5

Structured schemas, the Presentation tool, and live content — configured and ready in the studio app.

### Next.js 16 App Router

React Server Components, the React Compiler, and Server Actions, fetching Sanity content through a shared client.

### Turborepo

A pnpm monorepo with cached task orchestration across the web, studio, and shared packages.

### Tailwind CSS v4

A shared design system and component library styled with the latest Tailwind, ready to theme.

### Vercel

Deploy the front end in minutes, with preview deployments that pair with Sanity's live preview.

### TypeScript & TypeGen

Generated types keep your queries and components in sync with the schema across the whole repo.

**Community**

## Share what you have plugged in

Post an integration, ask whether one exists, or borrow a setup somebody else has already proven.

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

## Adding to the stack

What slots in cleanly, and what to watch for when it does.

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

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

### Does it support multiple languages?

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

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

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

### Does it work with Vercel previews?

Yes, as long as the preview URL is added to your Sanity CORS origins under API > CORS origins in Sanity Manage.

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

### Are there any paid dependencies in the stack?

No. Everything in the stack is open source — Next.js, Sanity Studio, Tailwind v4, Base UI, Turborepo, and Biome. You only pay for the services you host on, such as Sanity and Vercel.

### Do I need a paid Sanity plan?

No. You can start on Sanity's free tier and upgrade later if your traffic or team grows.

### What does hosting cost?

It depends on your providers. A common setup runs on Vercel and Sanity, both of which have free tiers for small projects.

[Roboto Studio builds custom integrations](https://robotostudio.com?ref=template-sanity)

## New integrations as they land

We write whenever a new integration, block or package joins the template.

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

**One command to start**

## Bring the whole stack online

Initialise the template with the Sanity CLI and the whole workspace comes up together — the Next.js site, the Studio, and the shared packages for queries, blocks, UI and validated env.

One `pnpm dev` runs both apps at once, with Turborepo handling the task graph and Sanity TypeGen keeping your generated types in step with the schema.

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