Sanity logosanity.ioAll Systems Operational© Sanity 2026
Change Site Theme
Sanity logo

Documentation

    • Overview
    • Platform introduction
    • Next.js quickstart
    • Nuxt.js quickstart
    • Astro quickstart
    • React Router quickstart
    • Studio quickstart
    • Build with AI
    • Content Lake
    • Functions
    • APIs and SDKs
    • Agent Actions
    • Visual Editing
    • Blueprints
    • Platform management
    • Dashboard
    • Studio
    • Canvas
    • Media Library
    • App SDK
    • Content Agent
    • HTTP API
    • CLI
    • Libraries
    • Specifications
    • Changelog
    • User guides
    • Developer guides
    • Courses and certifications
    • Join the community
    • Templates
Developer guides
Overview

  • Develop with AI

    Best practices

  • Query optimization

    Paginating with GROQ
    High performance GROQ

  • Roles and authentication

    Setting up Single Sign-On with SAML
    Third-Party Login (Deprecated)
    OAuth2
    Set up SSO authentication with SAML and Azure/Entra ID
    Set up SSO authentication with SAML and PingIdentity
    Set up SSO authentication with SAML and JumpCloud
    Reconcile users against internal systems
    Restrict Access to Specific Documents
    Setting up a Default Relay State for IdP Initiated - SAML Logins

  • Structured content

    Scalable navigation patterns
    An opinionated guide to Sanity Studio
    Browsing Content How You Want with Structure Builder
    Deciding on fields and relationships
    Create richer array item previews
    Dynamic folder structure using the currentUser and workflow states
    Create a time duration object field
    Level up Your Edit Modal with Next/Previous Navigation Buttons for Array Items
    Create a “coupon generator” string field input
    Managing redirects with Sanity
    Create a document form progress component
    Create an array input field with selectable templates
    Creating a Parent/Child Taxonomy
    Create interactive array items for featured elements
    Create a visual string selector field input
    Create a survey rating number field input
    How to use structured content for page building
    Create a recycling bin for deleted documents via Sanity Functions

  • Frontend integration

    Add live content to your application
    Forms with Sanity
    Vercel Integration
    Build your blog with Astro and Sanity
    How to implement front-end search with Sanity

  • Ecommerce

    Displaying Sanity content in Shopify
    Sanity Connect for Shopify
    Custom sync handlers for Sanity Connect

  • Integrating with other services

    A/B testing with Sanity and Growthbook
    Cookie consent integrations with Sanity
    Integrating external data sources with Sanity
    Klaviyo (email campaigns)
    Developing with Next.js on GitHub Codespaces

  • Adopting Sanity

    How to pitch Sanity.io to your team
    Convincing your clients to go with Sanity.io, rather than a traditional CMS
    Not-profit plan
    Agencies: Navigating the Spring 2025 Organization Changes
    How to generate massive amounts of demo content for Sanity
    How to implement Multi-tenancy with Sanity

  • GROQ

    GROQ-Powered Webhooks – Intro to Filters
    GROQ-Powered Webhooks – Intro to Projections

  • Portable Text

    Presenting Portable Text
    Add Inline blocks for the Portable Text Editor
    Beginners guide to Portable Text
    How to add custom YouTube blocks to Portable Text
    Converting Inline Styles to Sanity Block Decorators
    Add things to Portable Text
    Change the height of the PTE

  • Community and ecosystem

    Create your own Sanity template
    Community guides
    Community Code of Conduct
    Contribute to the ecosystem

  • Plugin development

    Migrating plugins to support Content Releases

On this page

Previous

Developing with Next.js on GitHub Codespaces

Next

Convincing your clients to go with Sanity.io, rather than a traditional CMS

Was this page helpful?

On this page

  • Sanity.io gives your team:
Developer guidesLast updated July 7, 2025

How to pitch Sanity.io to your team

Need help to convince your developer team to build with Sanity.io? Here are some points that may be useful!

Sanity.io is the platform for structured content. It comes with an open-source headless CMS called Sanity Studio that’s built with React, and that you can customize. You also get a hosted real-time datastore with powerful APIs. There are also libraries and tools that make it easier to use structured content in the products and services that you’re building. And not the least, there’s a growing friendly community of developers that will gladly help and learn with you.

Sanity.io gives your team:

  • Ultra-portable structured content. Your content is stored as plain JSON documents. That’s it. You can export all your documents from the backend with one API request or CLI command. And if you need to move them out of Sanity, it’s much easier to import these documents into another system, compared with some specific XML-export from a CMS littered with plugin-specific junk (looking at you WordPress). After all, portability is the hallmark of structured content.
  • A customizable editor environment. With Sanity.io, you get a CMS that’s open-source and customizable with JavaScript and React. You only need a name and a type to make a new field, and when you’re ready for it, you can extend with custom JavaScript validations, custom input components, and previews with React, CSS-variable overrides, and you can install plugins and tools or make your own. You have access to all the APIs that the Studio uses.
  • Something that’s easy to set up. You are probably way faster on a keyboard compared to dragging and dropping fields with your mouse. Creating a field in Sanity Studio is as easy as writing { name: ‘title’, type: ‘string’ } and hitting “save”. With content models in code, you can create your own snippets, you can bootstrap config, commit them to git, or even publish on npm.
  • The joy of rapid iteration with GROQ. Sanity.io offer GROQ (Graph-Relation Object Queries) as a way to filter your dataset’s documents, join them, and project the data structures that you need for your project. Like GraphQL it gives you one endpoint for all your content, but it’s way more versatile in the way you can shape and wrangle your data. After a couple of minutes, you can learn enough GROQ to be productive. With GROQ there is no need to loop over your data on the client-side after querying, you can shape it how you want it right in the query. This saves both bandwidth and processing time. GROQ is open source and can be used elsewhere as well.
  • Great APIs. In addition to GROQ, you can query your content with GraphQL. If you want to change a deeply nested value or change running text, you can do so with the powerful mutations API. The listener API lets your apps subscribe to changes happening in your content in real-time. With the Asset pipeline, you can get on-demand image transforms. With the History API, you can browse document revisions and see who did what. Webhooks lets you integrate with other services.
  • The calm of no-ops. We offer you a scalable backend, both in terms of the amount of data, but also traffic, security, and availability. CDNs for assets and content delivery. Sanity Studio, the CMS, is a Single Page Application. We can host the HTML and the JavaScript file for you, or you can put it pretty much on any host. You can even deploy different studios connected to the same datastore if you want to build specialized editor experiences.
  • Flexible, transparent pricing. You won't be forced to change tiers because of traffic or usage. All tiers are pay-as-you-go with modestly priced overages. You can also add more datasets and users on all plans. The tiers differ on SLAs, support, and advanced features. There’s no hidden schemes or gotchas, it’s all on the website for you to scrutinize. We let you upgrade and downgrade whenever you want, and will prorate you for what you haven’t used if you downgrade before the month has ended. You don’t have to talk to sales ever (but we sure love to if you want).
  • Privacy and GDPR. Sanity.io host your data in the heart of GDPR land: Brussels. Sanity.io is designed with GDPR in mind so that it is easy for you to stay compliant. None of your content is shared with third-party services (not even your images). We also offer custom edit history retention if your business requires that. If this isn’t enough, we also blogged about how to run a GDPR compliant SaaS
  • A content platform that has been in production since 2015. Although Sanity.io is a relatively new product on the market, it has been used in production by companies such as the renowned architecture firm OMA, and one of Norway’s largest media companies, Amedia. Publicly launched in 2017. Sanity.io is now used by thousands of developers and companies including Cornerstone OnDemand, Eurostar, Condé Nast, and micro:bit.
  • A tool for modern content strategy and design processes. If you look at the conversations happening within content strategy, you’ll quickly find structured content as a frequent topic. No wonder, since it’s a pattern that prevents duplicated content and tries to connect your text and media to the goals of your team and users. Sanity.io also makes content-first approaches to design easier with rapid content modeling and having the content available instantly. This is perfect when you’re building component-based design systems. Which you should be doing!