Multiple lists not possible in a single pane, but grouping list items is. Check out Sanity's documentation.

2 replies
Last updated: Nov 30, 2025
Is it possible to have multiple lists in the desk structure? E.g. a list with title content, and a list with title Settings below.
AI Update

Yes, absolutely! You can have multiple lists in the desk structure, including separate lists for "Content" and "Settings" or any other grouping you need.

The Structure Builder API provides several ways to organize your lists. Here are the most common approaches:

Using Dividers to Separate Lists

The simplest way is to use S.divider() to create visual separation between different sections. Here's an example that shows content types first, then settings below:

// ./structure/index.ts
import type {StructureResolver} from 'sanity/structure'

export const structure: StructureResolver = (S) =>
  S.list()
    .title('Content')
    .items([
      // Content section
      S.documentTypeListItem('post').title('Posts'),
      S.documentTypeListItem('page').title('Pages'),
      S.documentTypeListItem('author').title('Authors'),
      
      // Divider to separate sections
      S.divider(),
      
      // Settings section
      S.documentTypeListItem('siteSettings').title('Site Settings'),
      S.documentTypeListItem('navigationMenu').title('Navigation'),
    ])

You can also filter out certain document types from the default list and manually place them in a separate section:

export const structure: StructureResolver = (S) =>
  S.list()
    .title('Content')
    .items([
      // All document types except settings
      ...S.documentTypeListItems().filter(
        (item) => item.getId() !== 'siteSettings'
      ),
      
      S.divider(),
      
      // Settings placed separately
      S.documentTypeListItem('siteSettings').title('Settings'),
    ])

Creating Nested Lists

For more complex organization, you can create nested list items where clicking on a parent item reveals child lists:

export const structure: StructureResolver = (S) =>
  S.list()
    .title('Content')
    .items([
      // Content section as a nested list
      S.listItem()
        .title('Content')
        .child(
          S.list()
            .title('Content')
            .items([
              S.documentTypeListItem('post').title('Posts'),
              S.documentTypeListItem('page').title('Pages'),
            ])
        ),
      
      S.divider(),
      
      // Settings section as a nested list
      S.listItem()
        .title('Settings')
        .child(
          S.list()
            .title('Settings')
            .items([
              S.documentTypeListItem('siteSettings').title('Site Settings'),
              S.documentTypeListItem('redirects').title('Redirects'),
            ])
        ),
    ])

The Structure Builder cheat sheet has great examples of all these patterns, and you can learn more about the full capabilities in the Structure Builder introduction guide.

Show original thread
2 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.

Was this answer helpful?