> For AI agents: the complete Sanity documentation index is available at [https://www.sanity.io/docs/llms.txt](https://www.sanity.io/docs/llms.txt).

# Customize your app's dock item

Choose where your app appears, and set its icon and visibility.

The dock is the vertical rail on the left edge of the Dashboard. Your app gets a dock item for its window view, which `entry` creates, and one for each panel view. Studios don't set `entry` in `defineApplication`, but they still get a dock item.

## Choose a group and order

The `dock.group` property sets the area of the dock the item appears in:

- `system`: Under the organization name, at the top of the dock.
- `applications`: The main list in the middle of the dock. This is the default value if none is provided.
- `user`: At the bottom of the dock, above Help and the user menu.

`dock.order` sorts items within a group in ascending order. Items without an `order` sort as `100`.

**sanity.cli.ts**

```typescript
import {defineApplication, defineCliConfig} from 'sanity/cli'

export default defineCliConfig({
  app: defineApplication({
    organizationId: 'your-organization-id',
    slug: 'content-app',
    title: 'Content app',
    icon: './icon.svg',
    entry: './src/App.tsx',
    dock: {group: 'applications', order: 10},
  }),
})
```

In the `applications` group, a deployed app's window only appears for users who have pinned it, and pinned items follow each user's pin order. Panels and apps running under `sanity dev` always appear.

## Place a view separately

Panel and window views inherit the app's `dock` setting, field by field. Set `dock` on a view to place it somewhere else:

**sanity.cli.ts**

```typescript
import {defineApplication, defineCliConfig, definePanelView} from 'sanity/cli'

export default defineCliConfig({
  app: defineApplication({
    organizationId: 'your-organization-id',
    slug: 'content-app',
    title: 'Content app',
    entry: './src/App.tsx',
    dock: {group: 'applications', order: 10},
    views: [
      definePanelView({
        name: 'activity',
        title: 'Activity',
        src: './src/activity.tsx',
        dock: {group: 'user'},
      }),
    ],
  }),
})
```

Here the app's window stays in `applications` with order `10`, and the Activity panel moves to the `user` group. It keeps order `10` from the app.

## Add an icon

`icon` is a path to an SVG file, relative to the project root. Every dock item for the app uses this icon. Without one, the dock shows the app's initials. The CLI removes scripts and other unsafe content from the SVG, and rejects these files:

- `Icon path "<path>" resolves outside the project directory and is not allowed.`
- `Icon file at "<path>" does not contain an SVG element. App manifest icons must be SVG files.`

## Hide the app from the dock

Set `visibility` to control whether the Dashboard lists the app:

- `default`: The app and its panels appear in the dock and app lists.
- `unlisted`: The app and its panels don't appear in the dock or app lists. The app still opens from its URL.
- `disabled`: The Dashboard treats the app as if it doesn't exist.

Under `sanity dev`, the Dashboard ignores `visibility` and always lists your local app.

## Next steps

[Render a panel](https://www.sanity.io/docs/dashboard-beta/render-a-panel)
Open a UI surface from the dock.

[Render a tile on the homepage](https://www.sanity.io/docs/dashboard-beta/render-a-tile)
Show a tile view from your app on the Dashboard home page, and choose its size and order.

