惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
博客园 - 聂微东
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
小众软件
小众软件
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
量子位
月光博客
月光博客
博客园 - 【当耐特】
博客园 - 叶小钗

Sanity.io

A Board Game agent built using Sanity Context and Vercel's AI SDK | Sanity Build a prototype with Claude Code that your whole team can edit | Sanity What’s New - May 2026 | Sanity I built a London pub guide with v0 and the Sanity MCP in six hours. Here's what I learned. | Sanity Build a conference concierge with Agent Context and Anthropic | Sanity Build a content-aware Telegram agent with Vercel AI SDK and Chat SDK | Sanity How I used Agent API to generate photos for my family’s recipes | Sanity What’s New April - 2026 | Sanity Better context, better matches: An AI love story (for dogs) | Sanity How to write for an agent | Sanity Content Agent, meet Slack: AI content operations in your workflow | Sanity Structure powers intelligence | Sanity Your agent needs better content. Here's how to give it. | Sanity How to serve content to agents (a field guide) | Sanity Sanity TypeGen GA: Automatic TypeScript types for content and GROQ | Sanity Sanity is now available on the Vercel Marketplace | Sanity The logo soup problem (and how to solve it) | Sanity Content Releases: From scattered updates to coordinated publishing | Sanity What's New - February 2026 | Sanity How we solved the agent memory problem | Sanity v0 Builder Challenge: The winners | Sanity Introducing: Sanity Agent Skills | Sanity Content Agent: Days of work in one conversation | Sanity Our Sanity Values | Sanity Open Source Pledge 2025: Stepping up when it matters | Sanity v0 builder challenge: $3000 in prizes | Sanity Why AI Breaks Without Structured Content Operations | Sanity What’s New January - 2026 | Sanity BFCM 2025: What teams built when infrastructure stopped being the problem | Sanity How AI shaped holiday shopping and what it means for content in 2026 | Sanity
Introducing Perspectives: See your content from any angle...
Molly Friederich · 2023-06-30 · via Sanity.io

For years, we’ve all focused on getting the right content to the right people at the right time; the headless CMS category emerged in response to this challenge. Now, context is joining the complexity of devices, channels, and audiences. Contexts for your customers (where in the world are they? What are their preferences and patterns?) and for your teams (how do I preview the upcoming campaign or ensure content is rendering correctly for our UK readers?).

Querying the right content to build these increasingly mosaic views of content is hard. Hard enough that teams might settle for subpar experiences. For their audiences, this means less compelling, personalized experiences. For content teams, it means time-consuming hacks to preview a given view of content (or worse, crossing their fingers and hoping everything will “work out” when they click publish).

Announcing Perspectives

Today we’re introducing Perspectives, which dramatically simplifies building audience- or use-case-specific views. With Perspectives, you can add a single parameter to pull the right content variations for any given experience without making special accommodations in code. This enhances developers’ ability to create contextual variations of content (and improves the experience for both content teams and the audiences they serve).

With the launch of our first perspectives, we’re solving the most common use case developers and content teams grapple with, creating high-confidence, comprehensive previews across any device, channel, and context. These are available for all Sanity users and API versions for the GROQ query endpoint since v2021-03-25. To accommodate Perspectives, we've released new versions of the Vision plugin, JavaScript client, and Next.js toolkit. Customers who use GraphQL will find support for Perspectives using the GraphQL endpoint version v2023-08-01 and on. We've put Perspectives to use ourselves to improve Sanity's preview tooling by making live web previews more performant as well as expanding preview support to non-web surfaces like mobile apps.

In the future, we’ll deliver more perspectives to streamline the effort for Sanity users as they create contextual experiences. Just as the previewDrafts perspective simplifies building previews; we want to enable developers to specify a single parameter to power things like:

  • Internationalization: Personalize content for audiences worldwide with high confidence you’re pulling the right language for each region.
  • Content variants (A/B/N testing): Create alternative variations for documents and develop production tests and personalization.
  • Point-in-time snapshots: Preview an upcoming content release, or look back to see previously published content.

Enterprise customers: Define the future of Perspectives

We’re excited to see what customers do with these first perspectives and to partner with them to define the next highest-value perspective to ship. Contact your customer engagement manager if you want to give us feedback, or contact our sales team if you aren’t a Sanity customer yet.

Contact Us

For now, let’s take a closer look into what’s in the hands of teams using Sanity today.

Our first Perspectives: Lay eyes on any draft experience

While most solutions offer a rigid, page-based approach to previewing content, Sanity provides the most flexible preview solution for structured content. Since 2019, we’ve supported creating previews for any use case within Sanity Studio: from how your whole site looks to how it shows up in search result pages or even on a mockup of your content for printed materials.

Of course, there’s always room to improve innovation (what if Nabisco had stopped at single-stuffed Oreos?!). Over the past few years, we noticed many customers adding the same expressions across all their queries to build previews. Truth is, doing so while composing the many pieces of content that come together to build modern user experiences often became pretty complex.

Perspectives for previews simplify this complexity; it’s now a matter of specifying a single parameter in the query URL or client configuration. This makes it trivial to pull out all draft documents for a preview mode, and strictly published content for production—regardless of complex joins and different permission models.

Two pages folded showing a mix of draft and published content on the one side marked previewDrafts, and only published content on the other marekd published.
With Perspectives, solving the most common use case developers and content teams grapple with creating high-confidence, comprehensive previews across any device, channel, and context.

There are three perspectives available as part of this release, available now for all Sanity customers on any project plan:

  • previewDrafts: retrieves documents in their draft version (or published if no drafts exist). It will also add an originalId property to documents for additional control. As explored below, we designed previewDrafts to simplify the developer experience for building content previews.
  • published: retrieves only the published version of documents. You can use this perspective as an extra layer of assurance to avoid draft content leaks for authenticated requests in production.
  • raw: preserves the same functionality of queries as they worked pre-Perspectives (and is the default perspective if one is not specified). This means that Perspectives is a non-breaking feature.

The classic before-and-after photo

Let’s do a mini-case study on how the previewDrafts perspective untangles your queries for developing content previews. Let’s say you want to retrieve the draft content of both book documents and the referenced author documents with an authenticated request. Here’s what the query would look like before Perspectives:

In this query:

  • we first filter for draft documents of the book type. We skip the logic of picking the draft/published of those for readability here.
  • for author documents, we filter for both the published and draft versions. If there is a draft version, it is returned as first ([0]) in the list with the order(_updatedAt desc) function.

While it’s valuable you can express this complexity with GROQ, for common use cases, it’s better that you don’t need to.

If we first enable the previewDrafts perspective in our client, we can make this query way simpler when we use GROQ with Sanity:

Now, with the previewDrafts perspective, you can retrieve the same draft content with the following query:

Ahhhh, that’s nice. We replaced the whole sub-query logic in the example above with a simple join expression (->). This simplification makes the query all the more readable and easy to reason about (and reduces the risk of errors).

Get started with Perspectives

The first release of Perspectives which powers previews is now available for all Sanity users. GROQ users can utilize the query endpoint from version v2021-03-25 and on. GraphQL users can utilize the GraphQL endpoint from version v2023-08-01 and on. We’re eager for you to put it to use to save time and code. Here’s how developers can get started depending on your use case:

We provided a tour of Perspectives and other new features at our Summer Release Demo on August 2. It's now available to watch on demand!