Publish Once, Post Everywhere
Write once in Studio. Post everywhere. No copy-paste, no platform hopping.
Go to Publish Once, Post EverywhereAutomate your content workflows with functions that trigger on document events. From AI-powered automatic tagging and content enrichment to translation and optimization, these pre-built functions save time and improve content quality across your Sanity projects.
Write once in Studio. Post everywhere. No copy-paste, no platform hopping.
Go to Publish Once, Post EverywhereAutomatically format code blocks using Prettier to enforce consistency across all documents.
Go to Format code blocks with PrettierAI-powered automatic tagging for Sanity blog posts that analyzes content to generate 3 relevant tags, maintaining consistency by reusing existing tags from your content library.
Go to Automatically tag blog postsAutomatically track when content was first published with a timestamp that sets once and never overwrites, providing reliable publication history for analytics and editorial workflows.
Go to First Published Timestamp FunctionAutomatically update your Algolia index
Go to Algolia Sync FunctionCreate, preview, and send Klaviyo campaigns without ever leaving Sanity Studio"
Go to Klaviyo campaigns without leaving your StudioA Sanity function that tracks slug changes and creates redirects automatically.
Go to Auto-generating Redirects on Slugs ChangeStop manually linking products. Let this function map relationships for you
Go to Automatic product relationship mappingSurface product age to help editors choose the freshest inventory
Go to Keep Authors Aware of Product FreshnessAutomatically analyze and categorize the emotional tone of user comments
Go to Sentiment AnalysisOn document publish, send a Slack notification so your team is informed
Go to Notify your team via Slack on publishAI-Powered Content Summary from Long Form Content
Go to Auto Summary FunctionGet instant Telegram notifications when new comments are posted, with direct links to your Sanity Studio.
Go to Telegram alerts for new commentsAI-Powered Tone Analysis for Consistent Brand Voice
Go to Capture Tone of Voice FunctionGenerate content changes for a piece of content
Go to Brand Voice Validator FunctionInform your the Bluesky crowd when you publish a post
Go to Post to BlueskySpread the word on Mastodon when publishing a blog post
Go to Post to MastodonUse an asynchronous list item in the structure builder to display a random document
Go to Display random document in the studio deskDrop this into your Studio to let editors know when there's a more recent version of your Studio available, making sure they have the latest fields and validations.
Go to Auto-reload Studio when changes are deployedSchemas for creating an event directory on Sanity
Go to Event directory schemasGROQ query that finds duplicate data in a given field.
Go to GROQ query to find duplicate dataA query to pull the rich color data associated with an image from the Sanity Asset Pipeline
Go to GROQ query to pull data for image palette informationHow to add different types of “breaks” for Portable Text that can be translated to horizontal rules, “read more”, sections, chapters, and so on.
Go to Breaks for Portable TextChoose a file from a searchable select
Go to File Searchable SelectAdd lists of image assets based on information in the asset document using the Structure Builder API
Go to How to list and group image asset documentsGet details of the currently logged in Sanity user
Go to useCurrentUser Custom React HookMigration script to normalize Portable Text blocks across your whole dataset
Go to Normalize Portable Text blocksThis migration scripts lets you migrate documents to a new type.
Go to Migration script for document typesUse data for the current logged in user as initial values in a new document
Go to Initial value template with current userDo something with a uploaded file and populate a field in the document based on that
Go to Populate fields with data from a file uploadShow different document lists based on a user's role
Go to Desk structure with custom rolesHow to group documents by their publishedAt year using the Structure Builder API
Go to Group documents by yearFind new connections in a dataset by filtering a second time on dereferenced data
Go to GROQ query to find all movie screenings with a specific actorScript to find and delete unused assets in a dataset
Go to Delete unused assets