“What was the moment this product clicked?” —
A developer who chose Sanity for a project that needed a content infrastructure serious enough to model complex relationships and flexible enough to be customized for a non-developer content team. They built the schema. They configured the Studio. They wrote the GROQ queries. The content team uses what they built every day. The developer's relationship with Sanity is: maintenance, evolution, and occasional deep satisfaction when the content model they designed months ago handles a new requirement gracefully.
What are they trying to do? —
What do they produce? —
The content team wants to add a new content type: a comparison page where two products are placed side-by-side. Each side references an existing product document. The developer is adding a new document type to the schema. They're modeling two reference fields with a validation that requires both to be populated. They're adding a custom input component that shows both referenced documents side-by-side in the Studio editor so the content team can see what they're building while they build it. This is a 4-hour task. It will be used for 200 comparison pages.
Uses Sanity on 2–4 projects. Has built custom Studio configurations including custom input components, desk structure, and custom previews. Writes GROQ for content delivery. Works with a content team of 2–8 people who use the Studio daily. Has configured Sanity's image pipeline for automatic optimization and transformations. Has connected Sanity to a Next.js or Astro frontend. Has a Sanity webhook configured for cache invalidation on content publish. Knows where Sanity's content lake sits in the broader data architecture and can explain it to others.
Pairs with `contentful-primary-user` to map the developer-configured vs. out-of-box headless CMS philosophy. Contrast with `vercel-primary-user` for the full Next.js + Sanity + Vercel content delivery stack. Use with `figma-primary-user` for the design-to-content architecture workflow on large digital products.