<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>Get work-ready with Sanity</title><description>Become the ultimate Sanity professional with guided tours through Sanity's vast array of features to create truly excellent editorial experiences.</description><link>https://www.sanity.io/learn</link><atom:link href="https://www.sanity.io/learn/feed.xml" rel="self" type="application/rss+xml" /><language>en</language><sy:updatePeriod>daily</sy:updatePeriod><item><title>Architecture & DevOps: Introduction to Development Workflow</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity’s architecture decouples editorial experience from content storage and defines structure in code—making it ideal for CI/CD.]]></description><link>https://www.sanity.io/learn/course/architecture-and-devops/introduction-to-development-workflow</link><guid>https://www.sanity.io/learn/course/architecture-and-devops/introduction-to-development-workflow</guid></item><item><title>Architecture & DevOps: Setting Up Your Environments</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Separate development and production environments ensure isolated testing, stable workflows, and safe content migrations without disrupting editors.]]></description><link>https://www.sanity.io/learn/course/architecture-and-devops/setting-up-your-environments</link><guid>https://www.sanity.io/learn/course/architecture-and-devops/setting-up-your-environments</guid></item><item><title>Architecture & DevOps: Deploying Environment-Specific Studios</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Deploying separate Studios ensures clean environment separation, safer iteration, and uninterrupted content editing.]]></description><link>https://www.sanity.io/learn/course/architecture-and-devops/deploying-environment-specific-studios</link><guid>https://www.sanity.io/learn/course/architecture-and-devops/deploying-environment-specific-studios</guid></item><item><title>Architecture & DevOps: Automating Development Workflow</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Automate Sanity Studio deployments and CI checks that validate schemas and content, ensuring every code change is rigorously reviewed and production-ready.]]></description><link>https://www.sanity.io/learn/course/architecture-and-devops/automating-development-workflow</link><guid>https://www.sanity.io/learn/course/architecture-and-devops/automating-development-workflow</guid></item><item><title>AI-powered Sanity development: The present future of Sanity development</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Coding is no longer just for developers, however AI won't "do it all." Level-set your expectations on what AI tooling can and can't do for the pace and quality of development. ]]></description><link>https://www.sanity.io/learn/course/code-with-ai/the-present-future-of-sanity-development</link><guid>https://www.sanity.io/learn/course/code-with-ai/the-present-future-of-sanity-development</guid></item><item><title>AI-powered Sanity development: You don't need this course</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You could build something with AI in the time it takes to complete this course. You'd probably not learn much though.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/you-dont-need-this-course</link><guid>https://www.sanity.io/learn/course/code-with-ai/you-dont-need-this-course</guid></item><item><title>AI-powered Sanity development: The value of working with AI</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[What do you get from working with AI tools that you never had before?]]></description><link>https://www.sanity.io/learn/course/code-with-ai/the-value-of-working-with-ai</link><guid>https://www.sanity.io/learn/course/code-with-ai/the-value-of-working-with-ai</guid></item><item><title>AI-powered Sanity development: Glossary of terms</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/code-with-ai/glossary-of-terms</link><guid>https://www.sanity.io/learn/course/code-with-ai/glossary-of-terms</guid></item><item><title>AI-powered Sanity development: Prompting primer</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Get better results from AI tools by crafting effective prompts, setting realistic expectations, and using them for interactive brainstorming sessions.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/introduction-to-prompting</link><guid>https://www.sanity.io/learn/course/code-with-ai/introduction-to-prompting</guid></item><item><title>AI-powered Sanity development: Voice dictated prompts</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You may find it much faster and more natural to write prompts with your voice rather than your hands. Here's how I like to do it.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/voice-dictated-prompts</link><guid>https://www.sanity.io/learn/course/code-with-ai/voice-dictated-prompts</guid></item><item><title>AI-powered Sanity development: Cursor IDE</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[An introduction to Cursor, the AI-powered code editor you'll use in this course. Get to know the Chat window and the difference between an Ask and an Agent.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/writing-code-with-ai-assistance</link><guid>https://www.sanity.io/learn/course/code-with-ai/writing-code-with-ai-assistance</guid></item><item><title>AI-powered Sanity development: Add best practice skills</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The Sanity Agent Toolkit gives your AI assistant opinionated, Sanity-specific guidance—so it writes better code from the start.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/agent-toolkit-skills</link><guid>https://www.sanity.io/learn/course/code-with-ai/agent-toolkit-skills</guid></item><item><title>AI-powered Sanity development: Give your AI the full picture</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[LLMs know a lot, but not everything. Here are several ways to make sure your AI assistant always has accurate, up-to-date Sanity context.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/import-the-sanity-documentation</link><guid>https://www.sanity.io/learn/course/code-with-ai/import-the-sanity-documentation</guid></item><item><title>AI-powered Sanity development: Connect to the Sanity MCP server</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The Model Context Protocol (MCP) allows AI tools to reach out and perform actions on external applications—like your Sanity project.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/rapidly-generating-placeholder-content</link><guid>https://www.sanity.io/learn/course/code-with-ai/rapidly-generating-placeholder-content</guid></item><item><title>AI-powered Sanity development: Define your project specifications</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/code-with-ai/creating-a-prd-with-ai</link><guid>https://www.sanity.io/learn/course/code-with-ai/creating-a-prd-with-ai</guid></item><item><title>AI-powered Sanity development: Initialize a new Studio</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/code-with-ai/initialize-a-new-studio</link><guid>https://www.sanity.io/learn/course/code-with-ai/initialize-a-new-studio</guid></item><item><title>AI-powered Sanity development: Create schema types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/code-with-ai/create-schema-types</link><guid>https://www.sanity.io/learn/course/code-with-ai/create-schema-types</guid></item><item><title>AI-powered Sanity development: Automatically generate content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The Sanity MCP server is going to do the heavy lifting of creating our initial content.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/create-placeholder-content</link><guid>https://www.sanity.io/learn/course/code-with-ai/create-placeholder-content</guid></item><item><title>AI-powered Sanity development: Initialize a new front end</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You can pick whatever framework you'd like to complete this lesson. It's up to AI—and your prompting skills—to make it work.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/adding-sanity-content-to-any-front-end</link><guid>https://www.sanity.io/learn/course/code-with-ai/adding-sanity-content-to-any-front-end</guid></item><item><title>AI-powered Sanity development: Continuing to build</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/code-with-ai/building-more-routes</link><guid>https://www.sanity.io/learn/course/code-with-ai/building-more-routes</guid></item><item><title>AI-powered Sanity development: AI-unassisted quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[AI can't help you here. Let's reflect on what you've learned.]]></description><link>https://www.sanity.io/learn/course/code-with-ai/ai-unassisted-quiz</link><guid>https://www.sanity.io/learn/course/code-with-ai/ai-unassisted-quiz</guid></item><item><title>Content-driven web application foundations: Building content-editable websites</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[Sanity powers content operations beyond a single website or application, while Next.js focuses on best-in-class content delivery. Combine them into a powerful modern stack to build content-driven experiences.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/building-a-content-editable-website</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/building-a-content-editable-website</guid></item><item><title>Content-driven web application foundations: Create a new Next.js 16 application</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a new, clean Next.js application with a few opinionated choices for TypeScript and Tailwind CSS.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-next-js-application</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-next-js-application</guid></item><item><title>Content-driven web application foundations: Create a new Sanity project</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a new free Sanity project from the command line and automatically install Sanity Studio configuration files into your Next.js project.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-sanity-project</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/create-a-new-sanity-project</guid></item><item><title>Content-driven web application foundations: The next-sanity toolkit</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[Unpack next-sanity, the all-in-one Sanity toolkit for "live by default," production-grade content-driven Next.js applications.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/the-next-sanity-toolkit</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/the-next-sanity-toolkit</guid></item><item><title>Content-driven web application foundations: Query content with GROQ</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Organize and author queries for your content with best-practice conventions.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/writing-groq-queries</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/writing-groq-queries</guid></item><item><title>Content-driven web application foundations: Generate TypeScript Types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Add Type-safety to your project and reduce the likelihood that you will write code that produces errors. ]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/generate-typescript-types</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/generate-typescript-types</guid></item><item><title>Content-driven web application foundations: Fetch Sanity Content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Query for your content using Sanity Client, a library compatible with the Next.js cache and React Server Components for modern, integrated data fetching.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/fetch-sanity-content</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/fetch-sanity-content</guid></item><item><title>Content-driven web application foundations: Git-based workflows</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Version control, collaborate on, and deploy your Next.js application by storing it in a Git repository.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/git-based-workflows</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/git-based-workflows</guid></item><item><title>Content-driven web application foundations: Go live on Vercel</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Publish your web application to the world. Vercel's hosting and Next.js are made for one another, so it just makes sense to put them together for this project. ]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/deploy-to-vercel</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/deploy-to-vercel</guid></item><item><title>Content-driven web application foundations: Displaying images</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity stores your image assets, learn how both the Sanity CDN and Next.js's Image component help optimize rendering them.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/displaying-images</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/displaying-images</guid></item><item><title>Content-driven web application foundations: Block content and rich text</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Put the power of Portable Text to work for rendering simple formatted text up to complex block objects.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/block-content-and-rich-text</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/block-content-and-rich-text</guid></item><item><title>Content-driven web application foundations: Build up the blog</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[With all the basics in place, let's blow out our blog front end into something more visually impressive.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/build-up-the-blog</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/build-up-the-blog</guid></item><item><title>Content-driven web application foundations: Fundamentals quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A quick test of everything you've learned through this course.]]></description><link>https://www.sanity.io/learn/course/content-driven-web-application-foundations/fundamentals-quiz</link><guid>https://www.sanity.io/learn/course/content-driven-web-application-foundations/fundamentals-quiz</guid></item><item><title>Markdown Routes with Next.js: Why Markdown Routes Matter for AI-Friendly Documentation</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn why modern documentation should serve both HTML and markdown, how Accept header content negotiation compares to explicit markdown URLs, and why a dual-route strategy best supports AI agents, tools, and human readers.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/why-markdown-routes</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/why-markdown-routes</guid></item><item><title>Markdown Routes with Next.js: Set up markdown-ready docs with Next.js and Sanity</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Install markdown tooling, define schemas, configure Sanity, and plan routes so your Next.js docs site can serve both HTML and markdown content.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/project-setup</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/project-setup</guid></item><item><title>Markdown Routes with Next.js: Convert Sanity Portable Text to Markdown with Custom Serializers</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity stores content as Portable Text — now we need to turn it into markdown.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/portable-text-to-markdown</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/portable-text-to-markdown</guid></item><item><title>Markdown Routes with Next.js: Build markdown Route Handlers for docs in Next.js</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create internal /md/ Route Handlers that fetch Sanity content, serialize it to markdown, and serve it via .md URLs with proper headers and error handling.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/markdown-route-handlers</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/markdown-route-handlers</guid></item><item><title>Markdown Routes with Next.js: Serve docs as HTML or markdown with Next.js rewrites</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Use Next.js rewrites and Accept header content negotiation to serve both HTML and markdown from the same /docs URLs, with optional .md suffix support.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/content-negotiation-with-rewrites</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/content-negotiation-with-rewrites</guid></item><item><title>Markdown Routes with Next.js: Section and sitemap routes for agent-friendly markdown docs</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Set up a dedicated /sitemap.md route and section listings so AI agents and users can quickly discover your documentation structure, access markdown versions of pages, and benefit from optimized queries and caching for navigation versus full article content.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/section-and-sitemap-routes</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/section-and-sitemap-routes</guid></item><item><title>Markdown Routes with Next.js: CopyMarkdown React component for docs markdown export</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[AI agents fetch markdown automatically, but humans need a button.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/copy-markdown-component</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/copy-markdown-component</guid></item><item><title>Markdown Routes with Next.js: Production-Ready Markdown Routes: Caching, Headers, and Performance</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Make your markdown routes production-ready with proper caching, CDN behavior, analytics, performance optimizations, and robust error handling.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/production-ready-markdown-routes</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/production-ready-markdown-routes</guid></item><item><title>Markdown Routes with Next.js: Markdown Routes for AI Agents with Next.js</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Master markdown routes, content negotiation, and sitemaps in Next.js to serve both browsers and AI agents from a single documentation source.]]></description><link>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/markdown-routes-ai-agents-quiz-summary</link><guid>https://www.sanity.io/learn/course/markdown-routes-with-nextjs/markdown-routes-ai-agents-quiz-summary</guid></item><item><title>Implementing Sanity successfully: Gathering your team</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The most successful implementations of Sanity projects share this in common – assembling all stakeholders as early as possible in the project.]]></description><link>https://www.sanity.io/learn/course/implementing-sanity-successfully/gathering-your-team</link><guid>https://www.sanity.io/learn/course/implementing-sanity-successfully/gathering-your-team</guid></item><item><title>Implementing Sanity successfully: What is involved</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/implementing-sanity-successfully/what-is-involved</link><guid>https://www.sanity.io/learn/course/implementing-sanity-successfully/what-is-involved</guid></item><item><title>Implementing Sanity successfully: Project plan example</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The diagram below shows what a Sanity project might look like when created by four distinct teams. Adapt as is more useful to your organization.]]></description><link>https://www.sanity.io/learn/course/implementing-sanity-successfully/project-plan-example</link><guid>https://www.sanity.io/learn/course/implementing-sanity-successfully/project-plan-example</guid></item><item><title>Between GROQ and a hard place: Your new favorite query language</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Why you'll learn (and love) GROQ in this course, and why not GraphQL?]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/your-new-favourite-query-language</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/your-new-favourite-query-language</guid></item><item><title>Between GROQ and a hard place: The Vision Tool</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Vision is a plugin bundled with Sanity Studio that allows you to write GROQ queries against the current Project ID and Dataset.]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/the-vision-tool</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/the-vision-tool</guid></item><item><title>Between GROQ and a hard place: Filters and projections</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Most queries begin with one character, and it means “get everything.”]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/filters-and-projections</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/filters-and-projections</guid></item><item><title>Between GROQ and a hard place: Functions, in my queries?</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[With GROQ you can do more than return values; you can compute and transform them from within the query.]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/functions-in-my-queries</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/functions-in-my-queries</guid></item><item><title>Between GROQ and a hard place: Custom functions</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Reduce code duplication by including custom functions in your GROQ queries.]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/custom-functions</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/custom-functions</guid></item><item><title>Between GROQ and a hard place: Joins and subqueries</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[When a document contains a reference it only stores the ID of that document, GROQ can resolve it]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/joins-and-subqueries</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/joins-and-subqueries</guid></item><item><title>Between GROQ and a hard place: Chained projections</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Write sequential projections to transform responses into different shapes]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/chained-projections</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/chained-projections</guid></item><item><title>Between GROQ and a hard place: Query parameters</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[Use parameters as variables in your queries, whether they have values or not.]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/conditional-parameters</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/conditional-parameters</guid></item><item><title>Between GROQ and a hard place: Handling missing values</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Named attributes in a projection will return null by default, but they don't have to.]]></description><link>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/null-handling-and-prevention</link><guid>https://www.sanity.io/learn/course/between-groq-and-a-hard-place/null-handling-and-prevention</guid></item><item><title>SEO optimized content with Next.js: An introduction to SEO and structured content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A few core principles, applied consistently, can form a solid foundation that benefits both search engines and editorial workflows.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/an-introduction-to-seo-and-structured-content</link><guid>https://www.sanity.io/learn/course/seo-optimization/an-introduction-to-seo-and-structured-content</guid></item><item><title>SEO optimized content with Next.js: SEO schema types and metadata</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Prepare useful, optional and reusable schema types specifically for SEO content and render them into page metadata the Next.js way.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/seo-schema-types-and-metadata</link><guid>https://www.sanity.io/learn/course/seo-optimization/seo-schema-types-and-metadata</guid></item><item><title>SEO optimized content with Next.js: Extending the SEO schema types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Now you're setup for success, extend the fields made available to your authors.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/adding-seo-fields-to-your-project</link><guid>https://www.sanity.io/learn/course/seo-optimization/adding-seo-fields-to-your-project</guid></item><item><title>SEO optimized content with Next.js: Implementing redirects</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Redirects are a critical component of SEO and site maintenance. While they may appear straightforward at first, improper implementation can lead to complex redirect chains and degraded site performance. ]]></description><link>https://www.sanity.io/learn/course/seo-optimization/implementing-redirects</link><guid>https://www.sanity.io/learn/course/seo-optimization/implementing-redirects</guid></item><item><title>SEO optimized content with Next.js: Creating dynamic Open Graph images</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Generate dynamic Open Graph images that pull your data directly from Sanity, saving you hours of design work and ensuring your social previews are always up to date with your content.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/creating-dynamic-open-graph-images-with-vercel-og</link><guid>https://www.sanity.io/learn/course/seo-optimization/creating-dynamic-open-graph-images-with-vercel-og</guid></item><item><title>SEO optimized content with Next.js: Generate social posts from your content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Speed up ideation of social media posts. And as a result, boost your SEO from sharing your content to a wider audience across different social platforms.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/ai-generate-social-posts-from-your-content</link><guid>https://www.sanity.io/learn/course/seo-optimization/ai-generate-social-posts-from-your-content</guid></item><item><title>SEO optimized content with Next.js: Build a dynamic sitemap</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A sitemap helps search engines understand and index your website more effectively. Generate a dynamic sitemap to guide search crawlers through your content, showing them what pages exist and how often they change.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/building-a-dynamic-sitemap</link><guid>https://www.sanity.io/learn/course/seo-optimization/building-a-dynamic-sitemap</guid></item><item><title>SEO optimized content with Next.js: Generating JSON-LD dynamically</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[JSON-LD is a powerful way to provide structured data to search engines—fortunately structured data is what Sanity does best.]]></description><link>https://www.sanity.io/learn/course/seo-optimization/generating-json-ld-dynamically</link><guid>https://www.sanity.io/learn/course/seo-optimization/generating-json-ld-dynamically</guid></item><item><title>SEO optimized content with Next.js: Sanity SEO quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Let's test what you've learned in the prior lessons!]]></description><link>https://www.sanity.io/learn/course/seo-optimization/sanity-seo-quiz</link><guid>https://www.sanity.io/learn/course/seo-optimization/sanity-seo-quiz</guid></item><item><title>Build content apps with Sanity App SDK: Building content apps</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A true content operating system provides more than one way to author content. Build powerful, fit-for-purpose applications faster than ever before.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/building-content-apps</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/building-content-apps</guid></item><item><title>Build content apps with Sanity App SDK: Create a new Project and Studio</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Get setup with a fresh hosted backend for your content, and the traditional administration panel for Sanity.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/create-a-new-project-and-studio</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/create-a-new-project-and-studio</guid></item><item><title>Build content apps with Sanity App SDK: Quickstart a new App SDK app </title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Start a new App SDK app in seconds from the command line using the Sanity UI template.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/quickstart-a-new-app-sdk-app</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/quickstart-a-new-app-sdk-app</guid></item><item><title>Build content apps with Sanity App SDK: useDocuments</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Performant querying for a live-updating list of documents has never been simpler.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-documents</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-documents</guid></item><item><title>Build content apps with Sanity App SDK: useDocumentProjection</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Pick just the content you need from individual documents, and only when a component is rendered in view.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document-projection</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document-projection</guid></item><item><title>Build content apps with Sanity App SDK: useDocument</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Fetch content with real-time and optimistic updates when edits are made—locally or remotely.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document</guid></item><item><title>Build content apps with Sanity App SDK: useEditDocument</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Edit values in documents with all user interface and versioning complexity extracted away.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-edit-document</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-edit-document</guid></item><item><title>Build content apps with Sanity App SDK: useApplyDocumentActions</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Perform actions on documents to end—or begin—the content lifecycle]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-apply-document-actions</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-apply-document-actions</guid></item><item><title>Build content apps with Sanity App SDK: useDocumentEvent</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Listen to changes to content in your application and trigger events in the user interface.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document-event</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-document-event</guid></item><item><title>Build content apps with Sanity App SDK: useUsers</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Render an interactive list of Sanity project users to assign to documents.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-users</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-users</guid></item><item><title>Build content apps with Sanity App SDK: useUser</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Filter the queried list of documents based on the current user and other selections.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-user</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-user</guid></item><item><title>Build content apps with Sanity App SDK: useNavigateToStudioDocument</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Bridge the gap between your application and Sanity Studio with an automatic link.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-navigate-to-studio-document</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-navigate-to-studio-document</guid></item><item><title>Build content apps with Sanity App SDK: useClient</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA["Break glass in case of emergency" access to the all-powerful Sanity Client.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-client</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/use-client</guid></item><item><title>Build content apps with Sanity App SDK: Deployment and finishing touches</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[You have a working app. It's time to share it with your authoring team and tidy up some rough edges.]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/deployment-and-finishing-touches</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/deployment-and-finishing-touches</guid></item><item><title>Build content apps with Sanity App SDK: SDK Quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Let's put everything you've learned to the test!]]></description><link>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/sdk-quiz</link><guid>https://www.sanity.io/learn/course/build-content-apps-with-sanity-app-sdk/sdk-quiz</guid></item><item><title>Controlling cached content in Next.js: Caching Fundamentals</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Next.js has prioritized performance with its caching methods and expects you to configure them. Learn how to integrate the Next.js cache and Sanity CDN for high performance.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/introduction</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/introduction</guid></item><item><title>Controlling cached content in Next.js: Demystifying caching in development</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Set up Next.js so that as you make changes and navigate through the application, you can observe the impact of your cache configuration.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/debugging-caching-in-development</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/debugging-caching-in-development</guid></item><item><title>Controlling cached content in Next.js: Combining Sanity CDN with the Next.js Cache</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Implement Sanity Client in a way that compliments and leverages the Next.js cache with sensible defaults.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/combining-sanity-cdn-with-the-next-js-cache</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/combining-sanity-cdn-with-the-next-js-cache</guid></item><item><title>Controlling cached content in Next.js: Time-based cache revalidation</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Time-based revalidation is simple to setup and predictable. It might be "enough" for your project.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/time-based-cache-revalidation</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/time-based-cache-revalidation</guid></item><item><title>Controlling cached content in Next.js: Path-based revalidation</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Surgically revalidate individual post pages by their path when updates are made to their document in Sanity Studio.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/path-based-revalidation</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/path-based-revalidation</guid></item><item><title>Controlling cached content in Next.js: Tag-based revalidation</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Assign tags to queries to revalidate the cache of many paths by targeting any individual tag.]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/tag-based-revalidation</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/tag-based-revalidation</guid></item><item><title>Controlling cached content in Next.js: Quiz to win cache prizes</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Let's review what you've learned about caching and balancing the content you have with the people it serves. ]]></description><link>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/conclusion</link><guid>https://www.sanity.io/learn/course/controlling-cached-content-in-next-js/conclusion</guid></item><item><title>Testing Sanity Studio: Why Testing Matters for Studio Development</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn why testing is strategic infrastructure for Studio development. Protect business logic and ship changes with confidence.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/why-testing-matters-for-studio-development</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/why-testing-matters-for-studio-development</guid></item><item><title>Testing Sanity Studio: Setting Up Your Testing Environment</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Configure Vitest for Studio testing. Set up your test environment and write your first test for Sanity Studio customizations.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/setting-up-your-testing-environment</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/setting-up-your-testing-environment</guid></item><item><title>Testing Sanity Studio: Testing Validation and Access Control</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Test Studio validation and access control logic. Learn to verify business rules that have no external dependencies or side effects.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/testing-validation-and-access-control</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/testing-validation-and-access-control</guid></item><item><title>Testing Sanity Studio: Testing Stateful Studio Logic</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Test Studio functions with external dependencies. Learn to mock the Sanity client and create test fixtures for validation logic.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/testing-stateful-studio-logic</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/testing-stateful-studio-logic</guid></item><item><title>Testing Sanity Studio: Testing Studio React Components</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Test custom Studio React components. Learn to set up browser test environments and verify user interactions with Studio inputs.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/testing-studio-react-component</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/testing-studio-react-component</guid></item><item><title>Testing Sanity Studio: Continuous Integration and Test Strategy</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Integrate tests into CI pipelines and develop strategic testing priorities. Learn what to test and how to balance coverage with velocity.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/continuous-integration-and-test-strategy</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/continuous-integration-and-test-strategy</guid></item><item><title>Testing Sanity Studio: Tests as Content Operating System Infrastructure</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[View tests as strategic infrastructure for your Content Operating System. Learn how test coverage enables confident scaling.]]></description><link>https://www.sanity.io/learn/course/testing-sanity-studio/tests-as-content-operating-system-infrastructure</link><guid>https://www.sanity.io/learn/course/testing-sanity-studio/tests-as-content-operating-system-infrastructure</guid></item><item><title>Refactoring content for migration: Introduction to content migrations</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Gain the technical know-how to successfully migrate content to Sanity, adapting to unique project needs and confidently handling transactions and mutations.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/introduction-to-content-migrations</link><guid>https://www.sanity.io/learn/course/refactoring-content/introduction-to-content-migrations</guid></item><item><title>Refactoring content for migration: General migration principles</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A developer guide to content migration covering idempotent scripts with incremental complexity and considered error handling.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/general-migration-principles</link><guid>https://www.sanity.io/learn/course/refactoring-content/general-migration-principles</guid></item><item><title>Refactoring content for migration: Content normalization</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Migrating is an opportunity not only to move your content to Sanity, but your content strategy to structured content.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/content-normalization</link><guid>https://www.sanity.io/learn/course/refactoring-content/content-normalization</guid></item><item><title>Refactoring content for migration: Deterministic and consistent IDs</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Reusing existing values from your content source helps prevent duplicate data and optimistically set strong references.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/deterministic-and-consistent-ids</link><guid>https://www.sanity.io/learn/course/refactoring-content/deterministic-and-consistent-ids</guid></item><item><title>Refactoring content for migration: Setting created and modified dates</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[While the Content Lake stores date time values for document operations, it may be better to write your own for editorial purposes.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/setting-created-and-modified-dates</link><guid>https://www.sanity.io/learn/course/refactoring-content/setting-created-and-modified-dates</guid></item><item><title>Refactoring content for migration: Validating incoming content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Never trust your existing content source. Validate all data during a migration to avoid future headaches.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/validating-incoming-content</link><guid>https://www.sanity.io/learn/course/refactoring-content/validating-incoming-content</guid></item><item><title>Refactoring content for migration: Scripting content migrations</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity's API-first design allows you to write content – even in huge volumes – however you prefer. The CLI Migration tooling offers several conveniences that make it a great fit.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/scripting-content-migrations</link><guid>https://www.sanity.io/learn/course/refactoring-content/scripting-content-migrations</guid></item><item><title>Refactoring content for migration: Uploading assets efficiently</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Effortlessly manage and transform high-resolution images with Sanity's asset pipeline, avoid unnecessary uploads, and optimize content migration with metadata and in-memory cache. ]]></description><link>https://www.sanity.io/learn/course/refactoring-content/uploading-assets-efficiently</link><guid>https://www.sanity.io/learn/course/refactoring-content/uploading-assets-efficiently</guid></item><item><title>Refactoring content for migration: Migrating to block content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Convert HTML to presentation-agnostic Portable Text, even handling complex block content from WordPress' Gutenberg editor.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/migrating-to-block-content</link><guid>https://www.sanity.io/learn/course/refactoring-content/migrating-to-block-content</guid></item><item><title>Refactoring content for migration: Reducing SEO impact</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Confidently migrate content into Sanity, maintain SEO standing, manage redirects, and prevent broken links. Ensure visual consistency with automated testing.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/reducing-seo-impact</link><guid>https://www.sanity.io/learn/course/refactoring-content/reducing-seo-impact</guid></item><item><title>Refactoring content for migration: Conclusion</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You're now equipped to navigate content migration with a unique, well-documented strategy, adopting new technologies smoothly and predictably.]]></description><link>https://www.sanity.io/learn/course/refactoring-content/conclusion</link><guid>https://www.sanity.io/learn/course/refactoring-content/conclusion</guid></item><item><title>Build landing pages with Next.js: An introduction to page builders</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Setup your page builder the right way with Sanity and Next.js, understanding the process and best practices. With editing affordances your content creators will understand and appreciate.]]></description><link>https://www.sanity.io/learn/course/page-building/an-introduction-to-page-builders</link><guid>https://www.sanity.io/learn/course/page-building/an-introduction-to-page-builders</guid></item><item><title>Build landing pages with Next.js: Create page builder schema types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Setup the initial "blocks" of content and set the foundation of your page builder schema types.]]></description><link>https://www.sanity.io/learn/course/page-building/create-page-builder-schema-types</link><guid>https://www.sanity.io/learn/course/page-building/create-page-builder-schema-types</guid></item><item><title>Build landing pages with Next.js: Improve authoring with previews and thumbnails</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Updates to the configuration of your page builder schema types can dramatically improve the content creation experience.]]></description><link>https://www.sanity.io/learn/course/page-building/improved-ui-with-previews-and-thumbnails</link><guid>https://www.sanity.io/learn/course/page-building/improved-ui-with-previews-and-thumbnails</guid></item><item><title>Build landing pages with Next.js: Render pages</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a new dynamic route to render "page" documents and create links to them within Sanity Studio for an interactive live preview within Presentation.]]></description><link>https://www.sanity.io/learn/course/page-building/rendering-pages</link><guid>https://www.sanity.io/learn/course/page-building/rendering-pages</guid></item><item><title>Build landing pages with Next.js: Render page builder blocks</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Setup the unique components for each individual "block" to render on the page.]]></description><link>https://www.sanity.io/learn/course/page-building/rendering-page-builder-blocks</link><guid>https://www.sanity.io/learn/course/page-building/rendering-page-builder-blocks</guid></item><item><title>Build landing pages with Next.js: Creating a "home" page</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a "singleton" document to store distinct content that is globally relevant to the application.]]></description><link>https://www.sanity.io/learn/course/page-building/creating-a-home-page</link><guid>https://www.sanity.io/learn/course/page-building/creating-a-home-page</guid></item><item><title>Build landing pages with Next.js: Drag and drop in Visual Editing</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Allow authors to re-order blocks on page, without editing the document.]]></description><link>https://www.sanity.io/learn/course/page-building/drag-and-drop-in-visual-editing</link><guid>https://www.sanity.io/learn/course/page-building/drag-and-drop-in-visual-editing</guid></item><item><title>Build landing pages with Next.js: Scaling page builders and pitfalls</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[How to keep your page builder tidy as your project grows over time.]]></description><link>https://www.sanity.io/learn/course/page-building/scaling-page-builders-and-pitfalls</link><guid>https://www.sanity.io/learn/course/page-building/scaling-page-builders-and-pitfalls</guid></item><item><title>Typed content with Sanity TypeGen: Introduction</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn how to use Sanity TypeGen to automatically generate TypeScript type definitions for documents in Sanity Content Lake and for the result of GROQ queries in your front ends and web applications.]]></description><link>https://www.sanity.io/learn/course/typescripted-content/introduction</link><guid>https://www.sanity.io/learn/course/typescripted-content/introduction</guid></item><item><title>Typed content with Sanity TypeGen: Extracting your schema</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn how to extract your Sanity Studio schema into a JSON file. This is a crucial step before generating TypeScript types. This file, a static representation of your data's shape, will be used for type generation.]]></description><link>https://www.sanity.io/learn/course/typescripted-content/extracting-your-schema</link><guid>https://www.sanity.io/learn/course/typescripted-content/extracting-your-schema</guid></item><item><title>Typed content with Sanity TypeGen: Generating types from your schema</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn how to generate TypeScript types from your Sanity Studio schema using the Sanity CLI. This process will create a 'sanity.types.ts' file, providing you with types for all your schema, including built-in and plugin-related types.]]></description><link>https://www.sanity.io/learn/course/typescripted-content/generating-types-from-your-schema</link><guid>https://www.sanity.io/learn/course/typescripted-content/generating-types-from-your-schema</guid></item><item><title>Typed content with Sanity TypeGen: Configuring Sanity TypeGen for multiple-folder projects</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Configure Sanity TypeGen to place its generated files in the right locations. Run the typegen command and interpret its results.]]></description><link>https://www.sanity.io/learn/course/typescripted-content/configuring-sanity-typegen-for-multiple-folder-projects</link><guid>https://www.sanity.io/learn/course/typescripted-content/configuring-sanity-typegen-for-multiple-folder-projects</guid></item><item><title>Typed content with Sanity TypeGen: Generating types for GROQ query results</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Make your queries discoverable. Generate TypeScript types for your GROQ queries.]]></description><link>https://www.sanity.io/learn/course/typescripted-content/generating-type-for-groq-query-results</link><guid>https://www.sanity.io/learn/course/typescripted-content/generating-type-for-groq-query-results</guid></item><item><title>Day one content operations: Welcome</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[In this course you'll make first contact with most parts of the Sanity Content Operating System while building out a best-practice, multi-application monorepo.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/prerequisites</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/prerequisites</guid></item><item><title>Day one content operations: Hello, Studio</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a new Sanity project from the command line and learn the boundaries of where Sanity ends and your work begins.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/hello-studio</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/hello-studio</guid></item><item><title>Day one content operations: Local development</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[With a new Sanity project created and a new Studio installed, you're ready to get started with local development.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/getting-started</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/getting-started</guid></item><item><title>Day one content operations: Creating a schema</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Configure a schema for Sanity Studio that defines your content model and builds out an editorial interface.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/creating-a-schema</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/creating-a-schema</guid></item><item><title>Day one content operations: Deploying your Studio</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Get your content authoring dashboard into the hands of others with a single terminal command.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/deploying-your-studio</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/deploying-your-studio</guid></item><item><title>Day one content operations: Just enough GROQ</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[You can think of GROQ as "SQL for JSON," a simple but flexible way to query anything in your dataset and reshape the response.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/a-taste-of-groq</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/a-taste-of-groq</guid></item><item><title>Day one content operations: Prepare your monorepo</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Setup a PNPM workspace to more efficiently move through the rest of this course while developing multiple applications.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/prepare-your-monorepo</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/prepare-your-monorepo</guid></item><item><title>Day one content operations: Display content in Next.js</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You've now crafted a content creation experience and learned how to query from the Content Lake. All that's left to do is distribute that content to the world.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/bringing-content-to-a-next-js-front-end</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/bringing-content-to-a-next-js-front-end</guid></item><item><title>Day one content operations: Rendering assets</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity's powerful image asset CDN allows you to deliver images at the appropriate size by setting a few query parameters on a URL.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/rendering-assets</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/rendering-assets</guid></item><item><title>Day one content operations: Generating types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Generate TypeScript types from your Sanity Studio schema and GROQ queries. Ensure robust, maintainable, and error-resistant code, with type-safe data fetching.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/generating-types</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/generating-types</guid></item><item><title>Day one content operations: Build a content application</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Go beyond the customization and configuration of Sanity Studio and build something specific to your unique content operations.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/create-a-content-application</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/create-a-content-application</guid></item><item><title>Day one content operations: Automate anything with Functions</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The content lifecycle goes beyond authoring in Sanity Studio or rendering on a web page. Automate everything that happens next with Sanity Functions.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/create-a-function</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/create-a-function</guid></item><item><title>Day one content operations: Agent Actions</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Explore batteries-included schema-aware AI with Agent Actions to create, modify and translate documents using natural language.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/ai-agent-actions</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/ai-agent-actions</guid></item><item><title>Day one content operations: Day one quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Let's test everything you've learned in this course by answering a few questions.]]></description><link>https://www.sanity.io/learn/course/day-one-with-sanity-studio/day-one-quiz</link><guid>https://www.sanity.io/learn/course/day-one-with-sanity-studio/day-one-quiz</guid></item><item><title>Handling schema changes confidently: Introduction to Schema Change Management</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[How to think about schema change management and preparing your project for this course's exercises.]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/introduction-to-schema-change-management</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/introduction-to-schema-change-management</guid></item><item><title>Handling schema changes confidently: Validating documents in bulk</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Check document validation status across a whole dataset. Update schema with missing fields for content that's found in the dataset's documents.]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/updating-the-schema-to-match-imported-content</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/updating-the-schema-to-match-imported-content</guid></item><item><title>Handling schema changes confidently: Changing a field name</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Rename fields by first deprecating existing ones and marking them read only]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/changing-a-field-name</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/changing-a-field-name</guid></item><item><title>Handling schema changes confidently: Adapting a front end without downtime</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Prepare a front end for down-time-less content migration by adapting a GROQ query with fallbacks]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/adapting-a-frontend-without-downtime</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/adapting-a-frontend-without-downtime</guid></item><item><title>Handling schema changes confidently: Writing a content migration</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Use Sanity CLI to create a new content migration. Adapt the migration script for your use case. ]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/writing-a-content-migration</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/writing-a-content-migration</guid></item><item><title>Handling schema changes confidently: Running a content migration</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Use field validation to validate if the migration was successful. Back up the dataset for safe measure. Run the content migration and verify that it went well.]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/running-a-content-migration</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/running-a-content-migration</guid></item><item><title>Handling schema changes confidently: Tidy up the schema and front end code</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Tidy up the document form by hiding the old field. Update your front end to only query and access the new field name.]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/tidy-up-the-schema-and-front-end-code</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/tidy-up-the-schema-and-front-end-code</guid></item><item><title>Handling schema changes confidently: Making the content migration (more) idempotent</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Make it safe(r) to run the content migration multiple times using GROQ filters and idempotency keys.  ]]></description><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/making-the-content-migration-more-idempotent</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/making-the-content-migration-more-idempotent</guid></item><item><title>Handling schema changes confidently: Schema Change Management Quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/handling-schema-changes-confidently/schema-change-management-quiz</link><guid>https://www.sanity.io/learn/course/handling-schema-changes-confidently/schema-change-management-quiz</guid></item><item><title>Sanity and Shopify with Hydrogen: Prerequisites</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity Studio is the only CMS to be Shopify Plus Certified, making it a perfect match for building e-commerce experiences. You'll connect them along with the purpose-built Hydrogen front-end framework.]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/hydrogen-prerequisites</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/hydrogen-prerequisites</guid></item><item><title>Sanity and Shopify with Hydrogen: Preparing your Studio</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Sanity Studio is where your content creators will go to create and maintain content about your business, such as extended storytelling for your products.]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/preparing-your-studio</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/preparing-your-studio</guid></item><item><title>Sanity and Shopify with Hydrogen: Linking Shopify to your Sanity project</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You now have a Shopify-compatible Sanity Studio. Let's fill it with Shopify product and collection content. ]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/linking-shopify-to-your-sanity-project</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/linking-shopify-to-your-sanity-project</guid></item><item><title>Sanity and Shopify with Hydrogen: Creating a Hydrogen front end</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Hydrogen is a front-end framework based on Remix and preconfigured to query from Shopify stores. ]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/creating-a-hydrogen-front-end</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/creating-a-hydrogen-front-end</guid></item><item><title>Sanity and Shopify with Hydrogen: Fetching Shopify products</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[With the Hydrogen app connected to Shopify, you will next need to create “routes” to fetch and display products. ]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/fetching-shopify-products</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/fetching-shopify-products</guid></item><item><title>Sanity and Shopify with Hydrogen: Fetching Sanity content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Your front-end is only telling half the story. Bring your products to life with extra content from your Sanity project. ]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/fetching-sanity-content</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/fetching-sanity-content</guid></item><item><title>Sanity and Shopify with Hydrogen: Visual Editing for interactive live previews </title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[To dramatically improve the content creation experience for your authors, configure your Hydrogen front end and Sanity Studio for Visual Editing.]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/visual-editing-for-interactive-live-previews</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/visual-editing-for-interactive-live-previews</guid></item><item><title>Sanity and Shopify with Hydrogen: Next Steps with Hydrogen and Sanity</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Now that you've got some simple content rendered in Hydrogen, we wanted to give you some ideas for elevating experiences using this stack.]]></description><link>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/next-steps-with-hydrogen-and-sanity</link><guid>https://www.sanity.io/learn/course/sanity-and-shopify-with-hydrogen/next-steps-with-hydrogen-and-sanity</guid></item><item><title>Studio excellence: Excellent editorial experiences</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Getting started with Sanity and deploying a Studio for authors can be super fast. Spending extra time on the finer details separates average authoring experiences from excellent ones.]]></description><link>https://www.sanity.io/learn/course/studio-excellence/excellent-editorial-experiences</link><guid>https://www.sanity.io/learn/course/studio-excellence/excellent-editorial-experiences</guid></item><item><title>Studio excellence: Improving the editorial experience</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Elevate the basic editorial experience with field titles, descriptions, validation, conditional fields, field groups, and document list previews.]]></description><link>https://www.sanity.io/learn/course/studio-excellence/improving-the-editorial-experience</link><guid>https://www.sanity.io/learn/course/studio-excellence/improving-the-editorial-experience</guid></item><item><title>Studio excellence: Sublime schemas</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/studio-excellence/sublime-schemas</link><guid>https://www.sanity.io/learn/course/studio-excellence/sublime-schemas</guid></item><item><title>Studio excellence: Structure customization</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Learn how to customize how document lists and document views are organized in the Structure tool. ]]></description><link>https://www.sanity.io/learn/course/studio-excellence/structure-customization</link><guid>https://www.sanity.io/learn/course/studio-excellence/structure-customization</guid></item><item><title>Studio excellence: Custom input components</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Customize input components for Sanity Studio to further enhance the editorial experience for specific use cases.]]></description><link>https://www.sanity.io/learn/course/studio-excellence/custom-form-components</link><guid>https://www.sanity.io/learn/course/studio-excellence/custom-form-components</guid></item><item><title>Studio excellence: Member-specific options</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[The Studio’s configuration can respond to the current member’s role, offering a more guided experience for content creation.]]></description><link>https://www.sanity.io/learn/course/studio-excellence/member-mastery</link><guid>https://www.sanity.io/learn/course/studio-excellence/member-mastery</guid></item><item><title>Studio excellence: Interactive previews</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Give your authors more confidence to press publish by rendering live updating previews of new drafts or other content releases]]></description><link>https://www.sanity.io/learn/course/studio-excellence/intelligent-integrations</link><guid>https://www.sanity.io/learn/course/studio-excellence/intelligent-integrations</guid></item><item><title>Studio excellence: Internationalization</title><pubDate>Wed, 15 Apr 2026 12:43:37 GMT</pubDate><description><![CDATA[Configuring the Studio for multi-lingual content can be done with plugins to create your ideal workflow for localization.]]></description><link>https://www.sanity.io/learn/course/studio-excellence/internationalization</link><guid>https://www.sanity.io/learn/course/studio-excellence/internationalization</guid></item><item><title>Studio excellence: Awesome authoring</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[This is not a technical exercise; it's a social one!]]></description><link>https://www.sanity.io/learn/course/studio-excellence/awesome-authors</link><guid>https://www.sanity.io/learn/course/studio-excellence/awesome-authors</guid></item><item><title>Hello, Structured Content: An introduction to structured content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[To set up Sanity to publish content faster and meet the needs of your audience and business with a consistent and connected customer experience, it's helpful to understand the underlying philosophy of Sanity: structured content. ]]></description><link>https://www.sanity.io/learn/course/hello-structured-content/intro-to-structured-content</link><guid>https://www.sanity.io/learn/course/hello-structured-content/intro-to-structured-content</guid></item><item><title>Hello, Structured Content: The Structured Content Framework</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Creating and using structured content is probably different than how you are creating and using digital content now.]]></description><link>https://www.sanity.io/learn/course/hello-structured-content/structured-content-framework-lesson</link><guid>https://www.sanity.io/learn/course/hello-structured-content/structured-content-framework-lesson</guid></item><item><title>Hello, Structured Content: Content Modeling</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Structuring content makes content easier to manage and provides flexibility for future use cases without starting over.]]></description><link>https://www.sanity.io/learn/course/hello-structured-content/content-modeling-lesson</link><guid>https://www.sanity.io/learn/course/hello-structured-content/content-modeling-lesson</guid></item><item><title>Integrated Visual Editing with Next.js: Understanding Visual Editing</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Visual Editing is powered by a combination of Sanity features, which is helpful to understand before implementation.]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/understanding-visual-editing</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/understanding-visual-editing</guid></item><item><title>Integrated Visual Editing with Next.js: Token handling and security</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[To access draft content your application will need to be authenticated with a token. Learn how to do this securely.]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/token-handling-and-security</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/token-handling-and-security</guid></item><item><title>Integrated Visual Editing with Next.js: Receiving live edits to drafts</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Add perspectives to your Sanity data fetches to query for draft content, when Draft Mode is enabled.]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/fetching-preview-content-in-draft-mode</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/fetching-preview-content-in-draft-mode</guid></item><item><title>Integrated Visual Editing with Next.js: Configuring Presentation</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Install and configure the Presentation plugin to enable draft preview and a web preview from within Sanity Studio]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/configuring-presentation</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/configuring-presentation</guid></item><item><title>Integrated Visual Editing with Next.js: Setup document locations</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Showing where in the application the document they're editing may be displayed can help content creators understand the impact of their changes.]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/setup-document-locations</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/setup-document-locations</guid></item><item><title>Integrated Visual Editing with Next.js: Add drag-and-drop elements</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Go beyond "click-to-edit" with additional affordances for rearranging arrays in your front end]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/add-drag-and-drop-elements</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/add-drag-and-drop-elements</guid></item><item><title>Integrated Visual Editing with Next.js: Conclusion</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Let's review]]></description><link>https://www.sanity.io/learn/course/visual-editing-with-next-js/conclusions</link><guid>https://www.sanity.io/learn/course/visual-editing-with-next-js/conclusions</guid></item><item><title>Editorialized ecommerce experiences: Creating campaign pages</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[With Sanity, Shopify and Hydrogen connected it's time to build custom, highly curated landing pages with fine-grained control over presentation.]]></description><link>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/creating-campaign-pages</link><guid>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/creating-campaign-pages</guid></item><item><title>Editorialized ecommerce experiences: Simple block: Accordion</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/simple-block-accordion</link><guid>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/simple-block-accordion</guid></item><item><title>Editorialized ecommerce experiences: Next block: Curated products with references</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Resolve deeply nested references in your GROQ query and create a polymorphic component to render your content.]]></description><link>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/next-block-curated-products</link><guid>https://www.sanity.io/learn/course/editorialized-ecommerce-experiences/next-block-curated-products</guid></item><item><title>Users, roles and using roles: Introduction</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Why – and how – to use custom roles to deliver effective workflows and tailored user experiences.]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/introduction</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/introduction</guid></item><item><title>Users, roles and using roles: Typical use cases</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Motivations for setting up custom roles and permissions in content operations]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/typical-use-cases</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/typical-use-cases</guid></item><item><title>Users, roles and using roles: Custom roles and resources</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Set up content resources and roles to meet your requirements around security, compliance, workflows and user experience ]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/custom-roles-and-resources</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/custom-roles-and-resources</guid></item><item><title>Users, roles and using roles: Defining roles</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Combine your resources with permission levels to define which roles can perform which actions]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/defining-roles</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/defining-roles</guid></item><item><title>Users, roles and using roles: Studio customizations</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Change the user experience of the Sanity Studio based on roles and deliver a personalized user experience to accelerate editor workflows]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/studio-customizations</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/studio-customizations</guid></item><item><title>Users, roles and using roles: Roles quiz</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[A short test of everything you've learned through this course.]]></description><link>https://www.sanity.io/learn/course/introduction-to-users-and-roles/roles-quiz</link><guid>https://www.sanity.io/learn/course/introduction-to-users-and-roles/roles-quiz</guid></item><item><title>Re-platforming to Sanity: Introduction to re-platforming</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Why should you re-platform your content? And what can you get out of a re-platforming project?]]></description><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/introduction-to-re-platforming</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/introduction-to-re-platforming</guid></item><item><title>Re-platforming to Sanity: Planning a re-platforming project</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Feel confident in migrating content to Sanity, equipped with strategies to restructure content, upskill your team, handle legacy data, and validate migrated content for a successful transition.]]></description><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/planning-a-re-platforming-project</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/planning-a-re-platforming-project</guid></item><item><title>Re-platforming to Sanity: Get comfy with new terminology and technology</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Understanding key terminologies and benefits of API-first architecture, and ready to make informed decisions about the right components for your stack.]]></description><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/get-comfy-with-new-terminology-and-technology</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/get-comfy-with-new-terminology-and-technology</guid></item><item><title>Re-platforming to Sanity: Re-modelling your existing content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Whether you re-platform your entire application – or just individual pieces – don't miss the opportunity to expand or consolidate a web-focused content database into beautiful structured content.]]></description><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/re-modelling-your-existing-content</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/re-modelling-your-existing-content</guid></item><item><title>Re-platforming to Sanity: Migrating without downtime</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Feel confident in migrating content to Sanity with minimal disruption, ensuring data validity, and maintaining SEO standing through effective testing and validation strategies.]]></description><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/migrating-without-downtime</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/migrating-without-downtime</guid></item><item><title>Re-platforming to Sanity: Conclusion</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><link>https://www.sanity.io/learn/course/re-platforming-to-sanity/replatforming-conclusion</link><guid>https://www.sanity.io/learn/course/re-platforming-to-sanity/replatforming-conclusion</guid></item><item><title>Migrating content from WordPress to Sanity: Introduction</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Unlock the power of scripting content migrations into Sanity, fix past platform mistakes, and confidently handle unique content structures. Import users, posts, pages, categories, tags, and assets, and convert HTML markup into Portable Text.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/introduction-to-wp-migration</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/introduction-to-wp-migration</guid></item><item><title>Migrating content from WordPress to Sanity: Find your WordPress API</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Find and test your WordPress installations built in REST API to retrieve content.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/first-steps</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/first-steps</guid></item><item><title>Migrating content from WordPress to Sanity: Preparing a Studio and schema types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Configure the Sanity Studio schema to view your imported WordPress content in real-time.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/preparing-a-studio-and-schema-types</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/preparing-a-studio-and-schema-types</guid></item><item><title>Migrating content from WordPress to Sanity: Preparing your migration script</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Import WordPress content into Sanity in bulk using the CLI Migration tool, creating a script that queries the WordPress REST API and writes documents to Sanity.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/preparing-your-cli-script</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/preparing-your-cli-script</guid></item><item><title>Migrating content from WordPress to Sanity: Processing post types</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Create a dynamic migration script for WordPress post and pages types that accepts custom content transformation options to unlock reuse potential.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/support-importing-many-post-types</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/support-importing-many-post-types</guid></item><item><title>Migrating content from WordPress to Sanity: Creating complete documents</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Transform WordPress posts into more complete Sanity Studio documents with categories, authors, dates and more, using dedicated functions for each post type.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/creating-complete-documents</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/creating-complete-documents</guid></item><item><title>Migrating content from WordPress to Sanity: Uploading assets performantly</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[So far the migration script has staged documents to be created sequentially, now we need to introduce asynchronous functions to upload assets, that has the potential to slow the import process down.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/uploading-assets-performantly</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/uploading-assets-performantly</guid></item><item><title>Migrating content from WordPress to Sanity: Converting HTML to Portable Text</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Migrate HTML content from WordPress to Portable Text in Sanity, gaining presentation-agnostic block content and rich querying and filtering capabilities for your structured content.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/converting-html-to-portable-text</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/converting-html-to-portable-text</guid></item><item><title>Migrating content from WordPress to Sanity: Converting WordPress blocks to Portable Text</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Convert raw WordPress content into Portable Text, create custom schema types in Sanity Studio, and make authenticated requests to WordPress.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/converting-wordpress-blocks-to-portable-text</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/converting-wordpress-blocks-to-portable-text</guid></item><item><title>Migrating content from WordPress to Sanity: Restructuring content</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[Take the opportunity to transform content from presentation-focused in WordPress to structured content in Sanity]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/restructuring-content</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/restructuring-content</guid></item><item><title>Migrating content from WordPress to Sanity: Conclusion</title><pubDate>Wed, 15 Apr 2026 12:44:55 GMT</pubDate><description><![CDATA[You now have all the skills to convert individual post types from WordPress' presentation-focused types to structured content in Sanity Studio.]]></description><link>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/whats-next</link><guid>https://www.sanity.io/learn/course/migrating-content-from-wordpress-to-sanity/whats-next</guid></item></channel></rss>