A minimal Next.js site with Sanity Studio

This starter is a statically generated site that uses Next.js for the frontend and Sanity to handle its content. It comes with a native Sanity Studio that offers features like real-time collaboration, instant side-by-side content previews, and intuitive editing.

The Studio connects to Sanity Content Lake, which gives you hosted content APIs with a flexible query language, on-demand image transformations, powerful patching, and more. You can use this starter to kick-start a clean slate site or learn these technologies.

Deploy with Vercel

Note

This starter uses the /pages directory for Next.js routing.

The template will be migrated to the currently experimental /app directory when Vercel announce that it is production ready.

Table of Contents

Project Overview

Example Studio with preview
Sanity Studio

Important files and folders

File(s) Description
sanity.config.ts Config file for Sanity Studio
sanity.cli.ts Config file for Sanity CLI
/pages/index.tsx Landing page for /.
/pages/studio/[[...index]].tsx Where Sanity Studio is mounted
/pages/api/draft.ts Serverless route for triggering Draft mode
/sanity/schemas.ts Where Sanity Studio gets its content types from
/sanity/env.ts Configuration for the Sanity project and dataset
/sanity/schemas.ts Where Sanity Studio gets its content types from
/sanity/lib/client.ts Sanity client configured based on env.ts
/sanity/lib/image.ts Sanity image builder - unused in this template, but is needed to render Sanity images
tailwind.config.js Tailwind config. Only applies to files listed under content

All pages are wrapped in pages/_document.tsx and pages/_app.tsx.

Configuration

Step 1. Set up the environment

Use the Deploy Button below. It will let you deploy the starter using Vercel as well as connect it to your Sanity Content Lake using the Sanity Vercel Integration.

Deploy with Vercel

Step 2. Set up the project locally

Clone the repository that was created for you on your GitHub account. Once cloned, run the following command from the project's root directory:

npx vercel link

Download the environment variables needed to connect Next.js and the Studio to your Sanity project:

npx vercel env pull

This will create a git-ignored .env file with environment variables that will be used for local development.

Step 3. Run Next.js locally in development mode

npm install && npm run dev

When you run this development server, the changes you make in your frontend and studio configuration will be applied live using hot reloading.

Your blog should be up and running on http://localhost:3000! You can create and edit content on http://localhost:3000/studio.

Step 4. Deploy to production

To deploy your changes to production you use git:

git add .
git commit
git push

Alternatively, you can deploy without a git hosting provider using the Vercel CLI:

npx vercel --prod

Questions and Answers

It doesn't work! Where can I get help?

In case of any issues or questions, you can post:

How can I remove the "Next steps" block from my app?

You can remove it by deleting intro-template, and removing IntroTemplate usage from pages/index.tsx

Next steps