# Sanity ## Docs - [AI-accelerated content creation](https://www.sanity.io/docs/ai-accelerated-content-creation) - [Introduction](https://www.sanity.io/docs/canvas/canvas-user-guide) - [Automatic Content Mapping](https://www.sanity.io/docs/canvas/canvas-content-mapping) - [Migrating from Create](https://www.sanity.io/docs/canvas/migrate-create-documents) - [Configure content mapping](https://www.sanity.io/docs/canvas/configure-content-mapping) - [Processing and enhancing content workflows](https://www.sanity.io/docs/compute) - [Introduction](https://www.sanity.io/docs/compute-and-ai/functions-introduction) - [Quick start](https://www.sanity.io/docs/compute-and-ai/function-quickstart) - [Add environment variables](https://www.sanity.io/docs/compute-and-ai/function-env-vars) - [Configure @sanity/client](https://www.sanity.io/docs/compute-and-ai/functions-js-client) - [Manage dependencies](https://www.sanity.io/docs/compute-and-ai/function-dependencies) - [Common patterns](https://www.sanity.io/docs/compute-and-ai/functions-cheatsheet) - [Handler reference](https://www.sanity.io/docs/compute-and-ai/function-wrapper) - [Introduction](https://www.sanity.io/docs/compute-and-ai/blueprints) - [Configuration file reference](https://www.sanity.io/docs/compute-and-ai/blueprint-config) - [HTTP API reference](https://www.sanity.io/docs/compute-and-ai/agent-actions) - [Introduction](https://www.sanity.io/docs/compute-and-ai/embeddings-index-api-overview) - [HTTP API reference](https://www.sanity.io/docs/compute-and-ai/embeddings-index) - [Introduction](https://www.sanity.io/docs/compute-and-ai/webhooks) - [Best practices](https://www.sanity.io/docs/compute-and-ai/webhook-best-practices) - [HTTP API Reference](https://www.sanity.io/docs/reference) - [Actions](https://www.sanity.io/docs/http-reference/actions) - [Copy](https://www.sanity.io/docs/http-reference/copy) - [Backups](https://www.sanity.io/docs/http-reference/backups) - [Doc](https://www.sanity.io/docs/http-reference/doc) - [Export](https://www.sanity.io/docs/http-reference/export) - [History](https://www.sanity.io/docs/http-reference/history) - [Jobs](https://www.sanity.io/docs/http-reference/jobs) - [Mutation](https://www.sanity.io/docs/http-reference/mutation) - [Query](https://www.sanity.io/docs/http-reference/query) - [Scheduling](https://www.sanity.io/docs/http-reference/scheduling) - [Webhooks](https://www.sanity.io/docs/http-reference/webhooks) - [Agent Actions](https://www.sanity.io/docs/http-reference/agent-actions) - [Embeddings Index](https://www.sanity.io/docs/http-reference/embeddings-index) - [Assets](https://www.sanity.io/docs/http-reference/assets) - [Listen](https://www.sanity.io/docs/http-reference/listen) - [Live](https://www.sanity.io/docs/http-reference/live) - [Media Library](https://www.sanity.io/docs/http-reference/media-library) - [Access](https://www.sanity.io/docs/http-reference/access-api) - [Projects](https://www.sanity.io/docs/http-reference/projects-api) - [Roles](https://www.sanity.io/docs/http-reference/roles) - [Libraries and tooling](https://www.sanity.io/docs/libraries) - [Embeddings Index CLI reference](https://www.sanity.io/docs/libraries/embeddings-index-cli-reference) - [Specifications](https://www.sanity.io/docs/specifications) - [Syntax](https://www.sanity.io/docs/specifications/groq-syntax) - [Data types](https://www.sanity.io/docs/specifications/groq-data-types) - [Parameters](https://www.sanity.io/docs/specifications/groq-parameters) - [Operators](https://www.sanity.io/docs/specifications/groq-operators) - [Functions](https://www.sanity.io/docs/specifications/groq-functions) - [Pipeline components](https://www.sanity.io/docs/specifications/groq-pipeline-components) - [Joins](https://www.sanity.io/docs/specifications/groq-joins) - [Handler reference](https://www.sanity.io/docs/specifications/function-wrapper) - [Configuration file reference](https://www.sanity.io/docs/specifications/blueprint-config) - [Edit content directly from your frontend](https://www.sanity.io/docs/visual-editing) - [Introduction](https://www.sanity.io/docs/introduction-to-visual-editing) - [Next.js (App Router)](https://www.sanity.io/docs/visual-editing/visual-editing-with-next-js-app-router) - [Next.js (Pages Router)](https://www.sanity.io/docs/visual-editing/visual-editing-with-next-js-pages-router) - [Nuxt.js](https://www.sanity.io/docs/visual-editing/visual-editing-with-nuxt) - [SvelteKit](https://www.sanity.io/docs/visual-editing/visual-editing-with-sveltekit) - [React Router/Remix](https://www.sanity.io/docs/visual-editing/visual-editing-with-react-router) - [React Native](https://www.sanity.io/docs/visual-editing/visual-editing-with-react-native) - [Presentation tool](https://www.sanity.io/docs/visual-editing/configuring-the-presentation-tool) - [Fetch preview content](https://www.sanity.io/docs/visual-editing/fetching-content-for-visual-editing) - [Content Source Maps](https://www.sanity.io/docs/visual-editing/content-source-maps) - [Stega encoding](https://www.sanity.io/docs/visual-editing/stega) - [Overlays for click-to-edit](https://www.sanity.io/docs/visual-editing/visual-editing-overlays) - [Drag and drop](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop) - [Overlay and control components](https://www.sanity.io/docs/visual-editing/custom-overlay-components) - [Preview header and navigation](https://www.sanity.io/docs/visual-editing/customizing-preview-header-and-navigation) - [Resolver API](https://www.sanity.io/docs/visual-editing/presentation-resolver-api) - [useOptimistic hook](https://www.sanity.io/docs/visual-editing/useoptimistic-reference) - [Troubleshooting](https://www.sanity.io/docs/troubleshooting-visual-editing) - [Visual Editing on sites hosted on Vercel](https://www.sanity.io/docs/vercel-visual-editing) - [Sanity CLI](https://www.sanity.io/docs/cli-overview) - [Configuration](https://www.sanity.io/docs/cli-config) - [Blueprints](https://www.sanity.io/docs/cli-reference/cli-blueprints) - [Build](https://www.sanity.io/docs/cli-reference/build) - [Codemod](https://www.sanity.io/docs/cli-reference/codemod) - [CORS](https://www.sanity.io/docs/cli-reference/cors-in-cli) - [Dataset](https://www.sanity.io/docs/cli-reference/dataset) - [Debug](https://www.sanity.io/docs/cli-reference/debug-in-cli) - [Deploy](https://www.sanity.io/docs/cli-reference/deploy) - [Dev](https://www.sanity.io/docs/cli-reference/dev) - [Docs](https://www.sanity.io/docs/cli-reference/docs) - [Documents](https://www.sanity.io/docs/cli-reference/documents) - [Exec](https://www.sanity.io/docs/cli-reference/exec) - [Functions](https://www.sanity.io/docs/cli-reference/functions) - [GraphQL](https://www.sanity.io/docs/cli-reference/cli-graphql) - [Help](https://www.sanity.io/docs/cli-reference/help) - [Hook](https://www.sanity.io/docs/cli-reference/hook) - [Init](https://www.sanity.io/docs/cli-reference/init) - [Install](https://www.sanity.io/docs/cli-reference/install) - [Login](https://www.sanity.io/docs/cli-reference/login) - [Logout](https://www.sanity.io/docs/cli-reference/logout) - [Manage](https://www.sanity.io/docs/cli-reference/manage) - [Manifest](https://www.sanity.io/docs/cli-reference/manifest) - [Media](https://www.sanity.io/docs/cli-reference/media) - [Migration](https://www.sanity.io/docs/cli-reference/cli-migration) - [Preview](https://www.sanity.io/docs/cli-reference/preview) - [Projects](https://www.sanity.io/docs/cli-reference/projects) - [Schema](https://www.sanity.io/docs/cli-reference/cli-schema) - [Start](https://www.sanity.io/docs/cli-reference/start) - [Telemetry](https://www.sanity.io/docs/cli-reference/telemetry) - [TypeGen](https://www.sanity.io/docs/cli-reference/cli-typegen) - [Undeploy](https://www.sanity.io/docs/cli-reference/undeploy) - [Users](https://www.sanity.io/docs/cli-reference/users) - [Versions](https://www.sanity.io/docs/cli-reference/versions) - [Tokens](https://www.sanity.io/docs/cli-reference/tokens) - [Store and query structured content](https://www.sanity.io/docs/content-lake) - [Technical limits](https://www.sanity.io/docs/content-lake/technical-limits) - [API Versioning](https://www.sanity.io/docs/content-lake/api-versioning) - [API CDN](https://www.sanity.io/docs/content-lake/api-cdn) - [Datasets](https://www.sanity.io/docs/content-lake/datasets) - [Hot swap](https://www.sanity.io/docs/content-lake/how-to-use-hot-swapping-for-datasets) - [Cloud clone](https://www.sanity.io/docs/content-lake/how-to-use-cloud-clone-for-datasets) - [Backups](https://www.sanity.io/docs/content-lake/backups) - [IDs and Paths](https://www.sanity.io/docs/content-lake/ids) - [Drafts and versions](https://www.sanity.io/docs/content-lake/drafts) - [Attribute limit](https://www.sanity.io/docs/content-lake/attribute-limit) - [Perspectives](https://www.sanity.io/docs/content-lake/perspectives) - [Introduction](https://www.sanity.io/docs/content-lake/how-queries-work) - [Query cheat sheet](https://www.sanity.io/docs/content-lake/query-cheat-sheet) - [Custom functions](https://www.sanity.io/docs/content-lake/custom-groq-functions) - [Query playground](https://www.sanity.io/docs/content-lake/the-vision-plugin) - [Syntax reference](https://www.sanity.io/docs/content-lake/groq-syntax) - [Introduction](https://www.sanity.io/docs/content-lake/graphql) - [GROQ and GraphQL](https://www.sanity.io/docs/content-lake/what-about-graphql) - [Introduction](https://www.sanity.io/docs/content-lake/assets) - [Upload, query, and delete assets](https://www.sanity.io/docs/content-lake/manage-assets) - [Metadata](https://www.sanity.io/docs/content-lake/image-metadata) - [Transformations](https://www.sanity.io/docs/content-lake/image-urls) - [IIIF](https://www.sanity.io/docs/content-lake/iiif-api-reference) - [Transactions](https://www.sanity.io/docs/content-lake/transactions) - [Importing Data](https://www.sanity.io/docs/content-lake/importing-data) - [Migrating your schema and content](https://www.sanity.io/docs/content-lake/schema-and-content-migrations) - [Content migration cheat sheet](https://www.sanity.io/docs/content-lake/content-migration-cheatsheet) - [Schema migration principles](https://www.sanity.io/docs/content-lake/important-considerations-for-schema-and-content-migrations) - [Perspectives for preview and presentation](https://www.sanity.io/docs/content-lake/presenting-and-previewing-content) - [Live Content API](https://www.sanity.io/docs/content-lake/live-content-api) - [Listening API](https://www.sanity.io/docs/content-lake/realtime-updates) - [GROQ-powered webhooks](https://www.sanity.io/docs/content-lake/webhooks) - [Webhook Best Practices](https://www.sanity.io/docs/content-lake/webhook-best-practices) - [Access Your Data (CORS)](https://www.sanity.io/docs/content-lake/cors) - [Browser security & CORS](https://www.sanity.io/docs/content-lake/browser-security-and-cors) - [Keeping your data safe](https://www.sanity.io/docs/content-lake/keeping-your-data-safe) - [Activity Feed](https://www.sanity.io/docs/content-lake/activity-feed) - [Roles, grants, and permissions](https://www.sanity.io/docs/content-lake/roles-concepts) - [URL Format](https://www.sanity.io/docs/content-lake/http-urls) - [Authentication](https://www.sanity.io/docs/content-lake/http-auth) - [Patches](https://www.sanity.io/docs/content-lake/http-patches) - [Using JSONMatch](https://www.sanity.io/docs/content-lake/json-match) - [Setting up your studio](https://www.sanity.io/docs/next-js-quickstart/setting-up-your-studio) - [Defining a schema](https://www.sanity.io/docs/next-js-quickstart/defining-a-schema) - [Displaying content in Next.js](https://www.sanity.io/docs/next-js-quickstart/diplaying-content-in-next-js) - [Deploying Studio and inviting editors](https://www.sanity.io/docs/next-js-quickstart/deploying-studio-and-inviting-editors) - [Administer organizations, projects, datasets, and users](https://www.sanity.io/docs/platform-management) - [Platform terminology](https://www.sanity.io/docs/platform-management/platform-terminology) - [Plans and payments](https://www.sanity.io/docs/platform-management/plans-and-payments) - [Projects, organizations, and billing](https://www.sanity.io/docs/platform-management/projects-organizations-and-billing) - [Understanding the Growth plan trial](https://www.sanity.io/docs/platform-management/growth-plan-trial) - [Extending the Growth plan with paid add-ons](https://www.sanity.io/docs/platform-management/growth-plan-add-ons) - [Sanity's non-profit plan](https://www.sanity.io/docs/platform-management/non-profit-plan) - [Activity Feed](https://www.sanity.io/docs/platform-management/activity-feed) - [Request logs](https://www.sanity.io/docs/platform-management/request-logs) - [Request tags](https://www.sanity.io/docs/platform-management/reference-api-request-tags) - [Request logs data reference](https://www.sanity.io/docs/platform-management/reference-request-log-data) - [User Guides](https://www.sanity.io/docs/user-guide) - [Meet the Dashboard](https://www.sanity.io/docs/user-guides/dashboard-introduction) - [Introduction](https://www.sanity.io/docs/user-guides/canvas-user-guide) - [Content mapping](https://www.sanity.io/docs/user-guides/canvas-content-mapping) - [Comments](https://www.sanity.io/docs/user-guides/comments) - [Tasks](https://www.sanity.io/docs/user-guides/tasks) - [Copy and paste for fields](https://www.sanity.io/docs/user-guides/field-copy-and-paste) - [Preview and page building](https://www.sanity.io/docs/user-guides/preview-and-page-building) - [Content Releases](https://www.sanity.io/docs/user-guides/content-releases) - [Compare document versions](https://www.sanity.io/docs/user-guides/compare-document-versions) - [History experience](https://www.sanity.io/docs/user-guides/history-experience) - [Introduction](https://www.sanity.io/docs/user-guides/ai-assist-working-with-instructions) - [Common instructions](https://www.sanity.io/docs/user-guides/ai-assist-cheat-sheet) - [Meet the library](https://www.sanity.io/docs/user-guides/interface) - [Roles](https://www.sanity.io/docs/user-guides/roles) - [Setting up your studio](https://www.sanity.io/docs/setting-up-your-studio) - [Defining a schema](https://www.sanity.io/docs/defining-a-schema) - [Querying content with GROQ](https://www.sanity.io/docs/querying-content-with-groq) - [Displaying content in an Astro front end](https://www.sanity.io/docs/displaying-content-in-an-astro-front-end) - [Deploying Studio and inviting editors](https://www.sanity.io/docs/deploying-studio-and-inviting-editors) - [Agent Actions](https://www.sanity.io/docs/agent-actions) - [Introduction](https://www.sanity.io/docs/introduction) - [Operations](https://www.sanity.io/docs/operations) - [Targets and paths](https://www.sanity.io/docs/targets-paths) - [Creating instructions](https://www.sanity.io/docs/instructions) - [Common patterns](https://www.sanity.io/docs/agent-action-cheatsheet) - [Enable references](https://www.sanity.io/docs/agent-actions/generate-add-references) - [Enable image generation](https://www.sanity.io/docs/agent-actions/agent-actions-image-generation) - [Enable date and datetime support](https://www.sanity.io/docs/agent-actions/agent-actions-date-support) - [Quick start](https://www.sanity.io/docs/agent-actions/generate-quickstart) - [Common patterns](https://www.sanity.io/docs/agent-actions/generate-cheatsheet) - [Quick start](https://www.sanity.io/docs/agent-actions/translate-quickstart) - [Common patterns](https://www.sanity.io/docs/agent-actions/translate-cheatsheet) - [Quick start](https://www.sanity.io/docs/agent-actions/transform-quickstart) - [Common patterns](https://www.sanity.io/docs/agent-actions/transform-cheatsheet) - [Quick start](https://www.sanity.io/docs/agent-actions/prompt-quickstart) - [Quick start](https://www.sanity.io/docs/agent-actions/patch-quickstart) - [Setting up your studio](https://www.sanity.io/docs/sanity-studio-quickstart/setting-up-your-studio) - [Defining a schema](https://www.sanity.io/docs/sanity-studio-quickstart/defining-a-schema) - [Query content with GROQ](https://www.sanity.io/docs/sanity-studio-quickstart/querying-content-with-groq) - [Deploying the Studio](https://www.sanity.io/docs/sanity-studio-quickstart/deploying-studio-and-inviting-editors) - [Dashboard](https://www.sanity.io/docs/dashboard) - [Meet the Dashboard](https://www.sanity.io/docs/dashboard/dashboard-introduction) - [Configuring the Dashboard](https://www.sanity.io/docs/dashboard/dashboard-configure) - [Setting up your studio](https://www.sanity.io/docs/nuxt-js-quickstart/setting-up-your-studio) - [Defining a schema](https://www.sanity.io/docs/nuxt-js-quickstart/defining-a-schema) - [Querying content with GROQ](https://www.sanity.io/docs/nuxt-js-quickstart/querying-content-with-groq) - [Displaying content in Nuxt.jxt](https://www.sanity.io/docs/nuxt-js-quickstart/displaying-content-in-nuxt-js) - [Deploying Studio and inviting editors](https://www.sanity.io/docs/nuxt-js-quickstart/deploying-studio-and-inviting-editors) - [APIs and SDKs](https://www.sanity.io/docs/apis-and-sdks) - [Introduction to schemas](https://www.sanity.io/docs/apis-and-sdks/introduction-to-schemas) - [Naming things](https://www.sanity.io/docs/apis-and-sdks/naming-things) - [Attribute limit](https://www.sanity.io/docs/apis-and-sdks/attribute-limit) - [Studio schema reference](https://www.sanity.io/docs/apis-and-sdks/schema-types) - [Schema Deployment](https://www.sanity.io/docs/apis-and-sdks/schema-deployment) - [Aspects schema for Media Library](https://www.sanity.io/docs/apis-and-sdks/create-aspect) - [Introduction](https://www.sanity.io/docs/apis-and-sdks/cli) - [Importing content](https://www.sanity.io/docs/apis-and-sdks/importing-data) - [Reference](https://www.sanity.io/docs/apis-and-sdks/cli-config) - [Managing backups](https://www.sanity.io/docs/apis-and-sdks/backups) - [Generating types](https://www.sanity.io/docs/apis-and-sdks/sanity-typegen) - [Programmatic control](https://www.sanity.io/docs/apis-and-sdks/content-releases-api) - [Cheat sheet](https://www.sanity.io/docs/apis-and-sdks/content-releases-cheat-sheet) - [Presenting Images](https://www.sanity.io/docs/apis-and-sdks/presenting-images) - [Image transformations](https://www.sanity.io/docs/apis-and-sdks/image-urls) - [Image Metadata](https://www.sanity.io/docs/apis-and-sdks/image-metadata) - [International Image Interoperability Framework (IIIF) API reference](https://www.sanity.io/docs/apis-and-sdks/iiif-api-reference) - [Asset CDN](https://www.sanity.io/docs/apis-and-sdks/asset-cdn) - [Introduction](https://www.sanity.io/docs/apis-and-sdks/sanity-connect-for-shopify) - [Custom sync handlers](https://www.sanity.io/docs/apis-and-sdks/custom-sync-handlers-for-sanity-connect) - [Reference](https://www.sanity.io/docs/apis-and-sdks/sanity-connect-for-shopify-reference) - [Build custom applications on Sanity](https://www.sanity.io/docs/app-sdk) - [Quickstart](https://www.sanity.io/docs/sdk-quickstart) - [Introduction](https://www.sanity.io/docs/sdk-introduction) - [Installation](https://www.sanity.io/docs/app-sdk/installation-and-development) - [Configuration](https://www.sanity.io/docs/app-sdk/sdk-configuration) - [Deployment](https://www.sanity.io/docs/app-sdk/sdk-deployment) - [Document Handles](https://www.sanity.io/docs/app-sdk/document-handles) - [React Hooks](https://www.sanity.io/docs/app-sdk/sdk-react-hooks) - [Suspense](https://www.sanity.io/docs/app-sdk/react-suspense-sdk) - [Authentication](https://www.sanity.io/docs/app-sdk/sdk-authentication) - [App SDK best practices](https://www.sanity.io/docs/app-sdk/sdk-best-practices) - [Fetching and handling content](https://www.sanity.io/docs/app-sdk/fetching-and-handling-content) - [Sanity UI](https://www.sanity.io/docs/app-sdk/sanity-ui-sdk) - [Tailwind CSS](https://www.sanity.io/docs/app-sdk/tailwind-sdk) - [TypeGen (Experimental)](https://www.sanity.io/docs/app-sdk/sdk-typegen) - [Studio](https://www.sanity.io/docs/sanity-studio) - [Installation](https://www.sanity.io/docs/studio/installation) - [Project Structure](https://www.sanity.io/docs/studio/project-structure) - [Development](https://www.sanity.io/docs/studio/development) - [Hosting and deployment](https://www.sanity.io/docs/studio/deployment) - [Embedding Sanity Studio](https://www.sanity.io/docs/studio/embedding-sanity-studio) - [Upgrading Sanity Studio](https://www.sanity.io/docs/studio/upgrade) - [Environment Variables](https://www.sanity.io/docs/studio/environment-variables) - [Using TypeScript in Sanity Studio](https://www.sanity.io/docs/studio/using-typescript-in-sanity-studio) - [Auto-updating Sanity Studio](https://www.sanity.io/docs/studio/auto-updating-studios) - [Introduction](https://www.sanity.io/docs/studio/configuration) - [Workspaces](https://www.sanity.io/docs/studio/workspaces) - [Schema and forms](https://www.sanity.io/docs/studio/schemas-and-forms) - [Conditional fields](https://www.sanity.io/docs/studio/conditional-fields) - [Field Groups](https://www.sanity.io/docs/studio/field-groups) - [List Previews](https://www.sanity.io/docs/studio/previews-list-views) - [Connected Content](https://www.sanity.io/docs/studio/connected-content) - [Validation](https://www.sanity.io/docs/studio/validation) - [Initial Value Templates](https://www.sanity.io/docs/studio/initial-value-templates) - [Cross Dataset References](https://www.sanity.io/docs/studio/cross-dataset-references) - [Sort Orders](https://www.sanity.io/docs/studio/sort-orders) - [Introduction](https://www.sanity.io/docs/studio/block-content) - [Configure the Portable Text Editor](https://www.sanity.io/docs/studio/portable-text-editor-configuration) - [Customize the Portable Text Editor](https://www.sanity.io/docs/studio/customizing-the-portable-text-editor) - [Create a Portable Text behavior plugin](https://www.sanity.io/docs/studio/pte-plugins) - [Add Portable Text Editor plugins to Studio](https://www.sanity.io/docs/studio/add-portable-text-plugins) - [Common patterns](https://www.sanity.io/docs/studio/customizing-block-content) - [Introduction](https://www.sanity.io/docs/studio/intro-to-custom-studio-components) - [Custom authentication](https://www.sanity.io/docs/studio/custom-auth) - [Custom asset sources](https://www.sanity.io/docs/studio/custom-asset-sources) - [Diff components](https://www.sanity.io/docs/studio/custom-diff-components) - [Form Components](https://www.sanity.io/docs/studio/form-components) - [How form paths work](https://www.sanity.io/docs/studio/how-form-paths-work) - [Icons](https://www.sanity.io/docs/studio/icons-for-data-types) - [Favicons](https://www.sanity.io/docs/studio/favicons) - [Localizing Sanity Studio](https://www.sanity.io/docs/studio/localizing-studio-ui) - [New Document Options](https://www.sanity.io/docs/studio/new-document-options) - [Studio Components](https://www.sanity.io/docs/studio/studio-components) - [Studio search configuration](https://www.sanity.io/docs/studio/studio-search-config) - [Focus and UI state in custom inputs](https://www.sanity.io/docs/studio/focus-and-ui-state-in-custom-inputs) - [Real-time safe patches for input components](https://www.sanity.io/docs/studio/from-input-components-to-real-time-safe-patches) - [Sanity UI](https://www.sanity.io/docs/studio/sanity-ui) - [Studio Tools](https://www.sanity.io/docs/studio/studio-tools) - [Create a custom Studio tool](https://www.sanity.io/docs/studio/custom-studio-tool) - [Tools cheat sheet](https://www.sanity.io/docs/studio/tools-cheat-sheet) - [Theming](https://www.sanity.io/docs/studio/theming) - [The Dashboard tool for Sanity Studio](https://www.sanity.io/docs/studio/dashboard) - [Add widgets to dashboard](https://www.sanity.io/docs/studio/installing-and-configuring-widgets) - [Document actions](https://www.sanity.io/docs/studio/document-actions) - [Custom document badges](https://www.sanity.io/docs/studio/custom-document-badges) - [Localization](https://www.sanity.io/docs/studio/localization) - [Content Releases Configuration](https://www.sanity.io/docs/studio/content-releases-configuration) - [Enable and configure Comments](https://www.sanity.io/docs/studio/configuring-comments) - [Configuring Tasks](https://www.sanity.io/docs/studio/configuring-tasks) - [Scheduled publishing](https://www.sanity.io/docs/studio/scheduled-publishing) - [Structure tool](https://www.sanity.io/docs/studio/structure-tool) - [Introduction to Structure Builder](https://www.sanity.io/docs/studio/structure-builder-introduction) - [Set up Structure Builder to override the default list view](https://www.sanity.io/docs/studio/set-up-structure-builder-to-override-the-default-list-view) - [Create a link to a single edit page in your main document type list](https://www.sanity.io/docs/studio/create-a-link-to-a-single-edit-page-in-your-main-document-type-list) - [Manually group items in a pane](https://www.sanity.io/docs/studio/manually-group-items-in-a-pane) - [Dynamically group list items with a GROQ filter](https://www.sanity.io/docs/studio/dynamically-group-list-items-with-a-groq-filter) - [Create custom document views with Structure Builder](https://www.sanity.io/docs/studio/create-custom-document-views-with-structure-builder) - [Cheat sheet](https://www.sanity.io/docs/studio/structure-builder-cheat-sheet) - [Reference](https://www.sanity.io/docs/studio/structure-builder-reference) - [Installing and configuring plugins](https://www.sanity.io/docs/studio/installing-and-configuring-plugins) - [Developing plugins](https://www.sanity.io/docs/studio/developing-plugins) - [Publishing plugins](https://www.sanity.io/docs/studio/publishing-plugins) - [Internationalizing plugins](https://www.sanity.io/docs/studio/internationalizing-plugins-ui) - [Reference](https://www.sanity.io/docs/studio/plugins-api-reference) - [Installation](https://www.sanity.io/docs/studio/install-and-configure-sanity-ai-assist) - [Translation](https://www.sanity.io/docs/studio/ai-assist-content-translation) - [Custom field actions](https://www.sanity.io/docs/studio/ai-assist-field-actions) - [Comments](https://www.sanity.io/docs/studio/comments) - [Task](https://www.sanity.io/docs/studio/tasks) - [Copy and paste fields](https://www.sanity.io/docs/studio/field-copy-and-paste) - [Content Releases](https://www.sanity.io/docs/studio/content-releases) - [Compare document versions](https://www.sanity.io/docs/studio/compare-document-versions) - [Studio schema configuration](https://www.sanity.io/docs/studio/schema-types) - [Array](https://www.sanity.io/docs/studio/array-type) - [Block](https://www.sanity.io/docs/studio/block-type) - [Boolean](https://www.sanity.io/docs/studio/boolean-type) - [Cross Dataset Reference](https://www.sanity.io/docs/studio/cross-dataset-reference-type) - [Date](https://www.sanity.io/docs/studio/date-type) - [Datetime](https://www.sanity.io/docs/studio/datetime-type) - [Document](https://www.sanity.io/docs/studio/document-type) - [File](https://www.sanity.io/docs/studio/file-type) - [Geopoint](https://www.sanity.io/docs/studio/geopoint-type) - [Global Document Reference](https://www.sanity.io/docs/studio/global-document-reference-type) - [Image](https://www.sanity.io/docs/studio/image-type) - [Number](https://www.sanity.io/docs/studio/number-type) - [Object](https://www.sanity.io/docs/studio/object-type) - [Reference](https://www.sanity.io/docs/studio/reference-type) - [Slug](https://www.sanity.io/docs/studio/slug-type) - [Span](https://www.sanity.io/docs/studio/span-type) - [String](https://www.sanity.io/docs/studio/string-type) - [Text](https://www.sanity.io/docs/studio/text-type) - [URL](https://www.sanity.io/docs/studio/url-type) - [Asset Source](https://www.sanity.io/docs/studio/asset-source-api-reference) - [Configuration](https://www.sanity.io/docs/studio/config-api-reference) - [Document](https://www.sanity.io/docs/studio/document-api-reference) - [Document Badges](https://www.sanity.io/docs/studio/document-badges-api) - [Document Actions](https://www.sanity.io/docs/studio/document-actions-api) - [Form](https://www.sanity.io/docs/studio/form-api-reference) - [Form Components](https://www.sanity.io/docs/studio/form-components-reference) - [Hooks](https://www.sanity.io/docs/studio/studio-react-hooks) - [Structure tool](https://www.sanity.io/docs/studio/structure-tool-api) - [Studio Components Reference](https://www.sanity.io/docs/studio/studio-components-reference) - [Tools](https://www.sanity.io/docs/studio/tool-api-reference) - [Initial Value Templates](https://www.sanity.io/docs/studio/initial-value-templates-api) - [Help and troubleshooting](https://www.sanity.io/docs/help) - [Studio Performance Issues Caused by legacy HTTP protocols](https://www.sanity.io/docs/http1-performance-issues) - [AVIF](https://www.sanity.io/docs/avif) - [Experimental feature: Spaces](https://www.sanity.io/docs/experimental-spaces) - [Client API CDN configuration](https://www.sanity.io/docs/js-client-cdn-configuration) - [Total attribute count exceeds limit](https://www.sanity.io/docs/3dd46662-795f-4158-be10-66e68910f6e0) - [Desk is now Structure](https://www.sanity.io/docs/desk-is-now-structure) - [Invalid configuration for cross dataset reference](https://www.sanity.io/docs/cross-dataset-reference-invalid) - [Missing or duplicate context error](https://www.sanity.io/docs/missing-context-error) - [React Compiler and Sanity](https://www.sanity.io/docs/react-compiler) - [Sanity client: CDN + authorization token](https://www.sanity.io/docs/js-client-usecdn-token) - [Specify API version for studio client](https://www.sanity.io/docs/studio-client-specify-api-version) - [Why give schema types a title?](https://www.sanity.io/docs/schema-type-title-is-recommended) - [Array type has a invalid value for property "of"](https://www.sanity.io/docs/schema-array-of-invalid) - [React 19 and Sanity](https://www.sanity.io/docs/react-19) - [Schema: Lift anonymous object types](https://www.sanity.io/docs/schema-lift-anonymous-object-type) - [Reference type has a invalid value for property "to"](https://www.sanity.io/docs/schema-reference-to-invalid) - [Incorrect location for reference options](https://www.sanity.io/docs/schema-reference-options-nesting) - [Invalid part syntax](https://www.sanity.io/docs/plugin-parts-syntax) - [Asset metadata field](https://www.sanity.io/docs/asset-metadata-field-invalid) - [Warning: userStore.currentUser is deprecated](https://www.sanity.io/docs/studio-user-store-currentuser-deprecated) - [CLI errors](https://www.sanity.io/docs/cli-errors) - [Renamed plugin sanity-plugin-vision](https://www.sanity.io/docs/renamed-plugin-vision) - [Part name format](https://www.sanity.io/docs/part-name-format) - [Array member type name is the same as a global type](https://www.sanity.io/docs/schema-array-of-type-global-type-conflict) - [Changes in block schema customization properties](https://www.sanity.io/docs/schema-deprecated-blockeditor-key) - [How to migrate from date to richDate](https://www.sanity.io/docs/migrate-to-rich-date) - [Invalid shape of predefined choices](https://www.sanity.io/docs/schema-predefined-choices-invalid) - [JS Client: Promise Polyfill](https://www.sanity.io/docs/js-client-promise-polyfill) - [Introducing the document type](https://www.sanity.io/docs/toplevel-objects-to-document-type) - [Third party login](https://www.sanity.io/docs/third-party-login-help) - [Unable to get a ref to an input component](https://www.sanity.io/docs/input-component-no-ref) - [Outdated modules](https://www.sanity.io/docs/outdated-modules) - [Upgrade studio packages](https://www.sanity.io/docs/upgrade-packages) - [Block Content rendering: Image materializing](https://www.sanity.io/docs/block-content-image-materializing) - [Structure: Document schema type required](https://www.sanity.io/docs/structure-document-type-required) - [Parts: Declare vs implement](https://www.sanity.io/docs/part-declare-vs-implement) - [Incorrect options declaration in reference](https://www.sanity.io/docs/schema-reference-invalid-options) - [Block type cannot be used outside of array](https://www.sanity.io/docs/schema-standalone-block-type) - [Structure: Node ID required](https://www.sanity.io/docs/structure-node-id-required) - [Structure: List items must be an array](https://www.sanity.io/docs/structure-list-items-must-be-array) - [Installing Node.js](https://www.sanity.io/docs/a5f6caba-53c9-4a9f-96ef-1bd1ae8f5c10) - [Structure: Action or intent required](https://www.sanity.io/docs/structure-action-or-intent-required) - [Object type has a invalid value for fields](https://www.sanity.io/docs/schema-object-fields-invalid) - [`studioHost` and `externalStudioHost` properties deprecated](https://www.sanity.io/docs/studio-host-user-applications) - [Schema type is ES Module but imported through require](https://www.sanity.io/docs/schema-type-is-esm-module) - [Structure: Invalid list item](https://www.sanity.io/docs/structure-invalid-list-item) - [Structure: Query provided where filter is expected](https://www.sanity.io/docs/structure-query-provided-for-filter) - [Structure: List item IDs must be unique](https://www.sanity.io/docs/structure-list-item-ids-must-be-unique) - [Given type name is a reserved type](https://www.sanity.io/docs/schema-type-name-reserved) - [Structure: Schema type not found](https://www.sanity.io/docs/structure-schema-type-not-found) - [API versioning](https://www.sanity.io/docs/api-versioning) - [Migrating the legacy webhook behavior to GROQ-powered Webhooks](https://www.sanity.io/docs/6816a33e-f07d-4fdf-ad29-14c6337e19e3) - [Schema type is invalid](https://www.sanity.io/docs/schema-type-invalid) - [Input component is missing a required prop](https://www.sanity.io/docs/form-builder-input-missing-required-prop) - [Structure: Title is required](https://www.sanity.io/docs/structure-title-required) - [Structure: Filter is required](https://www.sanity.io/docs/structure-filter-required) - [Import: Asset file does not exist](https://www.sanity.io/docs/import-asset-file-does-not-exist) - [Input component is missing a required method](https://www.sanity.io/docs/input-component-missing-required-method) - [Implementing non-overridable part](https://www.sanity.io/docs/implement-non-overridable-part) - [Structure: Item returned no child](https://www.sanity.io/docs/structure-item-returned-no-child) - [How to migrate your block text schema for the new definition of inline objects](https://www.sanity.io/docs/migrate-to-block-inline-types) - [Structure: Schema type is required](https://www.sanity.io/docs/structure-schema-type-required) - [How to migrate from blocks spans to block children](https://www.sanity.io/docs/migrate-to-block-children) - [Array type cannot contain array member](https://www.sanity.io/docs/schema-array-of-array) - [Using tokens in the browser](https://www.sanity.io/docs/js-client-browser-token) - [GraphQL](https://www.sanity.io/docs/graphql-beta) - [Array member type name conflicts with built-in type](https://www.sanity.io/docs/schema-array-of-type-builtin-type-conflict) - [Source vs. compiled paths](https://www.sanity.io/docs/source-vs-compiled-paths) - [Import: Asset has different target than source](https://www.sanity.io/docs/import-asset-has-different-target) - [Using global studio client without specifying API version](https://www.sanity.io/docs/studio-client-global-config) - [Structure: Action and intent are mutually exclusive](https://www.sanity.io/docs/structure-action-and-intent-mutually-exclusive) - [Upgrade React](https://www.sanity.io/docs/upgrade-react) - [Plugin is missing a sanity.json file](https://www.sanity.io/docs/missing-plugin-sanity-json) - [Structure: Document ID required](https://www.sanity.io/docs/structure-document-id-required) - [Incompatible combination of params and filter](https://www.sanity.io/docs/schema-reference-filter-params-combination) - [Using listener with tokens is not supported in browsers](https://www.sanity.io/docs/js-client-listener-tokens-browser) - [Schema type is missing a required property](https://www.sanity.io/docs/schema-type-missing-name-or-type) - [API versioning in Javascript Client](https://www.sanity.io/docs/js-client-api-version) - [Upgrade version of studio package](https://www.sanity.io/docs/upgrade-package) - [Slug: `slugifyFn` renamed](https://www.sanity.io/docs/slug-slugifyfn-renamed) - [Renamed plugin @sanity/date-input](https://www.sanity.io/docs/deprecated-sanity-date-input) - [Specify API version when using custom document list filters](https://www.sanity.io/docs/structure-api-version-required-for-custom-filter) - [Function Timeout](https://www.sanity.io/docs/functions-timeout) - [Functions rate limit](https://www.sanity.io/docs/functions-rate-limit) - [Studio v3 to v4](https://www.sanity.io/docs/v3-to-v4) - [Platform introduction](https://www.sanity.io/docs/docs/the-sanity-content-operating-system-an-introduction) - [Displaying content in a front end](https://www.sanity.io/docs/displaying-content-in-a-react-router-front-end) - [Media Library](https://www.sanity.io/docs/media-library) - [Meet the library](https://www.sanity.io/docs/media-library/interface) - [Studio configuration](https://www.sanity.io/docs/media-library/configure-studio) - [Media Library configuration](https://www.sanity.io/docs/media-library/configure-library) - [Create an aspect](https://www.sanity.io/docs/media-library/create-aspect) - [Add an aspect to an asset](https://www.sanity.io/docs/media-library/assign-aspects) - [Query aspects](https://www.sanity.io/docs/media-library/query-aspects) - [Aspect patterns](https://www.sanity.io/docs/media-library/aspect-patterns) - [Importing assets (media + aspects)](https://www.sanity.io/docs/media-library/importing-assets) - [Upload an asset](https://www.sanity.io/docs/media-library/upload-assets) - [Link assets to documents](https://www.sanity.io/docs/media-library/link-media-assets) - [Migrate assets from Media Plugin](https://www.sanity.io/docs/media-library/media-migration) - [HTTP API reference](https://www.sanity.io/docs/media-library/media-library) - [CLI reference](https://www.sanity.io/docs/media-library/media) - [Limits and usage](https://www.sanity.io/docs/media-library/limits-and-usage) - [Developer guides](https://www.sanity.io/docs/developer-guides) - [Best practices](https://www.sanity.io/docs/developer-guides/ai-best-practices) - [Paginating with GROQ](https://www.sanity.io/docs/developer-guides/paginating-with-groq) - [High performance GROQ](https://www.sanity.io/docs/developer-guides/high-performance-groq) - [Setting up Single Sign-On with SAML](https://www.sanity.io/docs/developer-guides/sso-saml) - [Third-Party Login (Deprecated)](https://www.sanity.io/docs/developer-guides/third-party-login) - [Scalable navigation patterns](https://www.sanity.io/docs/developer-guides/navigation-with-sanity) - [Add live content to your application](https://www.sanity.io/docs/developer-guides/live-content-guide) - [Forms with Sanity](https://www.sanity.io/docs/developer-guides/forms-with-sanity) - [Displaying Sanity content in Shopify](https://www.sanity.io/docs/developer-guides/displaying-sanity-content-in-shopify) - [Sanity Connect for Shopify](https://www.sanity.io/docs/developer-guides/sanity-connect-for-shopify) - [Custom sync handlers for Sanity Connect](https://www.sanity.io/docs/developer-guides/custom-sync-handlers-for-sanity-connect) - [How to pitch Sanity.io to your team](https://www.sanity.io/docs/developer-guides/how-to-pitch-sanity-io-to-your-team) - [Not-profit plan](https://www.sanity.io/docs/developer-guides/non-profit-plan) - [Presenting Portable Text](https://www.sanity.io/docs/developer-guides/presenting-block-text) - [Create your own Sanity template](https://www.sanity.io/docs/developer-guides/create-your-own-sanity-template) - [Community Code of Conduct](https://www.sanity.io/docs/developer-guides/community-code-of-conduct) - [Migrating plugins to support Content Releases](https://www.sanity.io/docs/developer-guides/migrating-plugins-to-support-content-releases) - [Getting started with Sanity](https://www.sanity.io/docs/getting-started) - [Platform introduction](https://www.sanity.io/docs/getting-started/the-sanity-content-operating-system-an-introduction) - [What is content operations?](https://www.sanity.io/docs/getting-started/what-is-content-operations)