Multiple lists in Sanity desk structure
Yes, absolutely! You can have multiple lists in your desk structure, including a content list and a settings list below it. This is a very common pattern in Sanity.
The Structure Builder API makes this straightforward. Here's how you'd set it up:
// structure/index.ts
import type {StructureResolver} from 'sanity/structure'
export const structure: StructureResolver = (S) =>
S.list()
.id('root')
.title('Content')
.items([
// Content section
S.listItem()
.title('Content')
.child(
S.list()
.title('Content')
.items([
S.documentTypeListItem('post').title('Posts'),
S.documentTypeListItem('page').title('Pages'),
S.documentTypeListItem('author').title('Authors'),
])
),
// Divider (optional, for visual separation)
S.divider(),
// Settings section
S.listItem()
.title('Settings')
.child(
S.list()
.title('Settings')
.items([
S.documentTypeListItem('siteSettings').title('Site Settings'),
S.documentTypeListItem('navigation').title('Navigation'),
])
),
])Then import this into your sanity.config.ts:
import {defineConfig} from 'sanity'
import {structureTool} from 'sanity/structure'
import {structure} from './structure'
export default defineConfig({
// ...other config
plugins: [
structureTool({structure}),
// ...other plugins
],
})You can also create a flatter structure without the nested lists if you prefer:
export const structure: StructureResolver = (S) =>
S.list()
.title('Content')
.items([
S.documentTypeListItem('post').title('Posts'),
S.documentTypeListItem('page').title('Pages'),
S.divider(),
S.documentTypeListItem('siteSettings').title('Settings'),
])The Structure Builder is incredibly flexible and supports infinitely-nestable categories, filtered lists, and custom groupings to create exactly the editorial experience your team needs!
Show original thread2 replies
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.