Issue with deploying Gatsby starter project to Sanity Studio
The "Cannot GET /" error you're seeing at http://localhost:3333 is almost certainly a basePath configuration issue. The Studio is compiling successfully, but it's configured to be served at a subpath rather than the root path.
What's happening:
The kitchen-sink-gatsby starter likely has the Studio configured with a basePath (probably /studio), meaning the Studio expects to be accessed at http://localhost:3333/studio instead of just http://localhost:3333. When you visit the root URL, there's nothing there - hence "Cannot GET /".
Quick fix - try these URLs:
http://localhost:3333/studiohttp://localhost:3333/admin
One of these should work! The Studio is running fine - you're just accessing the wrong URL.
Finding your basePath:
Check your Studio configuration file. Depending on the Sanity version, look in:
- Sanity v3:
sanity.config.jsorsanity.config.ts - Sanity v2:
sanity.json
Look for a basePath setting:
// In sanity.config.js/ts (v3)
export default defineConfig({
basePath: '/studio', // <-- This is your path
// ... other config
})
// Or in sanity.json (v2)
{
"project": {
"basepath": "/studio"
}
}Solutions:
Option 1: Access the correct URL (easiest)
Just use http://localhost:3333/[your-basepath] when opening the Studio.
Option 2: Remove the basePath If you want the Studio at the root:
- Remove or comment out the
basePathline in your config - Restart the dev server
- The Studio will now be at
http://localhost:3333
Option 3: Keep the basePath (recommended for Gatsby integration) The basePath is intentional in the kitchen-sink-gatsby starter because it's designed to run alongside your Gatsby site. This is the correct setup for production where both the Gatsby site and Studio are served from the same domain.
Note on Sanity v3: If you're on Sanity v3 and need to configure basePath for both dev and build, you may need to set it in both sanity.config.js AND sanity.cli.js. There was a known issue where the build command didn't respect the basePath from sanity.config.js. The workaround is to add it to sanity.cli.js:
// sanity.cli.js
import { defineCliConfig } from 'sanity/cli'
export default defineCliConfig({
api: {
projectId: 'your-project-id',
dataset: 'your-dataset',
},
project: {
basePath: '/studio',
},
})The "Cannot GET /" message isn't an error - there's just nothing configured to serve at the root path. Your Studio is working perfectly at its configured basePath!
Sanity – Build the way you think, not the way your CMS thinks
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.