Skip to content

Things I've Built

Here is a small sampling of projects I've made.

Previous: Sanity framework templates

02 Developer Tools 2026

Sanity use case templates

Full reference builds for the hard things people do with a headless CMS: an AI shopping assistant on a Next.js app, AI assisted email marketing campaigns, agentic localization & translations.

Links
[AI Shopping Assistant ]
[Email Marketing ]
[Agentic Localization & Translations ]
[All use cases starter kits ]

Use case starters are full, opinionated builds of things that are hard to do with a headless CMS: a shopping assistant that checks stock before it recommends anything, email campaigns generated from content you already have, translation that obeys your glossary. Each installs with one command that clones the repo, deploys the schema, the functions and the sample data.

They're built to be used three ways:

  • Start a new project from one and ship it.
  • Lift one piece, a schema, a function, a Studio tool, into a codebase you already have.
  • Hand the whole thing to a coding agent as context and say "this, but for my catalog." Each starter ships its own agent skills for exactly that.
pnpm create sanity@latest --template sanity-labs/starters/ai-shopping-assistant

I led the development side of this project when it started in early 2026: the repo, the scaffold new starters are copied from, the CI, etc. I built the AI shopping assistant and the email marketing starter, and co-built the localization use case.

The AI shopping assistant is a Next.js storefront with a Claude chat widget that answers from the catalog through Sanity Context, a read-only MCP server in front of the live dataset. The model gets the schema and runs GROQ against published content at request time, so "a sweater under $100 in a medium" becomes a query with hard filters and comes back as live product cards with current price and stock. The system prompt is a document in Studio, so merchandising can tune it without a deploy. Every conversation is saved to Sanity and classified by Sanity Insights, and a dashboard in Studio shows where shoppers got stuck and what the catalog is missing.

The email marketing starter lets content editors run email campaigns from the CMS they already work in. This allows content editors to create campaigns inside of the CMS (Sanity), using content already in Sanity. The brand voice and context that AI uses to create the campaigns is the same brand voice and context used to create pages on the site and! Such a better experience than hopping into a new tool. Campaign approval fires a Sanity Function that renders the HTML and sends it through Klaviyo's API. Send status and engagement data come back onto the promotion document, so results sit next to the content that produced them.

Agentic localization stores glossaries, style guides, and locale rules as content. Publishing a source document marks its translations stale, a function works out what changed and pre-translates the affected fields through the Agent API, and a reviewer pane in Studio lets a translator apply or redo each suggestion before it publishes. An eval harness scores the output with an LLM judge, which is how you find out whether the glossary is being obeyed.