Getting the most out of Turbo Start

Duration: 15:06

Rough cut process of building page builder blocks within Turbo Start Sanity

Frequently asked questions

What is Turbo Start?
Turbo Start is Roboto Studio's open-source Next.js + Sanity boilerplate, structured as a pnpm monorepo with separate apps for the Next.js website and the Sanity Studio. It's designed to give teams a working page builder, type generation, and a sensible starting structure on day one rather than wiring everything from scratch.
How is Turbo Start structured?
Turbo Start is a pnpm monorepo with two main apps, `studio` for Sanity and `web` for Next.js, plus a shared UI package. Schema files live as `.ts` inside the studio, and matching React components live as `.tsx` inside the web app. The root `package.json` stays deliberately small so dependencies belong to the workspace that uses them.
How do you add a new page builder block to Sanity in Turbo Start?
Create a schema definition in the studio app, register it inside the page builder array, run `pnpm run type` to regenerate the TypeScript types, then add a matching `.tsx` section component in the web app and wire it into the page builder block resolver. After that the editor can place the block from inside Sanity Studio.
How do you create a Sanity schema?
A Sanity schema is a `defineType` object that lists fields like title, rich text, and image. In Turbo Start the schema lives next to its sibling components, you generate types from it with `pnpm run type`, and you reference it from the page builder index so it shows up as a block option in the studio.
How does Sanity work with Next.js?
Sanity stores content and exposes it through GROQ queries; Next.js fetches that data and renders it server-side. In Turbo Start the two are split into a monorepo so you keep schema, type generation, and rendering in one repo while still deploying the studio and the website separately.
Should I use pnpm with Turbo Start?
Yes. Turbo Start expects pnpm, and that's the reason the workspaces and dependency hoisting line up correctly. Using npm or yarn will produce duplicated installs and inconsistent lockfiles, which gets painful fast across many Sanity and Next.js projects.
Why does Turbo Start use GROQ fragments for queries?
Fragments like `_image` and `_richText` keep blocks composable, so a hero block and a content-with-image block can share the same image query without duplicating fields. It feels overkill on a small site, but at 600 or 700 pages it's what stops your queries from timing out by over-fetching.


Continue watching

Get in touch

Fill out the form below and we'll get back to you