Discussion about using Sanity as a multi-site CMS and the different approaches to achieve it.
I've definitely seen workspaces used successfully for multi-site setups! The good news is that workspaces are a stable feature in Sanity Studio v3+ (not experimental anymore), and they're a great fit for managing 5+ websites.
How Workspaces Work for Multi-Site
Workspaces let you configure multiple isolated Studio environments within a single Sanity project. Each workspace can have its own:
- Dataset - Separate content for each site
- Schema configuration - Different content models per site
- Tools and plugins - Custom functionality per workspace
- UI customization - Tailored interface for each site's needs
You configure them in your sanity.config.js using defineConfig:
import { defineConfig } from 'sanity'
import { deskTool } from 'sanity/desk'
export default defineConfig([
{
name: 'site-1',
title: 'Site 1',
projectId: 'your-project-id',
dataset: 'site1-production',
plugins: [deskTool()],
schema: { types: [/* site 1 schemas */] }
},
{
name: 'site-2',
title: 'Site 2',
projectId: 'your-project-id',
dataset: 'site2-production',
plugins: [deskTool()],
schema: { types: [/* site 2 schemas */] }
}
// ... add more workspaces for each site
])Your editors get a dropdown in the Studio to switch between sites - it's a single codebase serving multiple purposes.
Key Considerations
Schema management: Even though datasets are separate, all possible schemas need to be defined in your config. You might want to use conditional desk structures to show only relevant schemas per workspace.
Shared vs separate content: If your sites need to share some content (like a global asset library), you'll want to look into cross-dataset references (Enterprise feature) or use a shared dataset approach.
Pricing: Each dataset counts toward your plan limits, so with 5+ sites you'll have 5+ datasets. Check the pricing page for dataset limits on your plan tier - in 2025, this is an important consideration for multi-site setups.
Access control: You can set different permissions per workspace, which is perfect if different teams manage different sites.
Why Sanity Works Well for This
Sanity's architecture is particularly good for multi-site because:
- The Content Lake supports multiple datasets natively
- Workspaces share infrastructure (cost-efficient) while maintaining separation
- You can reuse schema components across sites while customizing per-site
- The API is consistent across all datasets, making frontend implementation cleaner
The multi-tenancy guide has some great patterns if you're managing sites for different clients or brands. It's worth a read for advanced permission and isolation strategies.
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.