Sanity, structured content
for editors who care
and developers who code.
WebAnts is a London Sanity CMS development agency, and we use Sanity for our own site. Custom schemas, GROQ queries, Portable Text, visual editing, and a Next.js frontend that scores 90+ on Lighthouse.
GROQ
Purpose-built query language
Visual
Editing via Presentation Tool
TypeGen
Auto-generated TypeScript types
Free
Tier for most projects
(What makes Sanity different)
Six things Sanity does
better than everything else.
GROQ, not GraphQL
Sanity's query language is purpose-built for document graphs. Projections, joins, and ordering in a single query, no N+1 fetching, no resolver boilerplate.
Portable Text
Rich text that travels across platforms, Portable Text is a structured data format that renders cleanly in React, Vue, Astro, native apps, and email without serialisation hacks.
Real-time Collaboration
Multiple editors can work on the same document simultaneously without conflicts, built on operational transforms, the same technology behind Google Docs.
Fully Programmable Studio
Every field type, validation rule, sidebar component, and desk structure in Sanity Studio is configurable in TypeScript. It's not a rigid editor, it's a platform.
Visual Editing
Sanity's Presentation Tool overlays clickable edit regions directly on your Next.js preview, editors click any text on the page and the correct field highlights in Studio.
Free Tier, Fair Pricing
Sanity's free tier covers most non-production projects. Paid plans start at $15/month and scale on API usage, significantly cheaper than Contentful at scale.
(Services)
Schema to studio to site ,
all in-house.
01
Schema & Studio Configuration
Custom document types, field definitions, validation rules, and Desk Structure, configured as TypeScript code alongside your frontend, version-controlled and testable.
02
GROQ Query Development
Efficient GROQ queries with projections, conditional fields, reference joins, and filters. Type-safe query results generated via Sanity TypeGen, no manual interface maintenance.
03
Portable Text Rendering
Custom block components for every Portable Text mark and type, pull quotes, code blocks, image with caption, embeds, and CTAs, rendered consistently across all channels.
04
Presentation Tool & Live Preview
Sanity's Presentation Tool configured with visual editing overlays, editors see their changes rendered on the actual frontend as they type, with click-to-edit field mapping.
05
Next.js + Sanity Integration
Next.js App Router, server-side GROQ queries, on-demand ISR via Sanity webhooks, draft mode, and TypeScript types generated from your schema, the full production stack.
06
Custom Studio Plugins
Bespoke Sanity Studio components, custom input components, document badges, structure items, sidebar widgets, and integrations with external services (DAM, translation, analytics).
07
Content Migration to Sanity
Migrate structured content from WordPress, Contentful, or any source into Sanity using the SANITY_STUDIO_DATASET import tools and custom transformation scripts.
08
Multi-dataset & Production Setup
Production, staging, and development datasets. CORS configuration, token management, webhook setup, and CDN configuration for the Sanity Image API.
(How we work)
Schema as code.
Built alongside the frontend.
Schema Workshop
Design document types, field structures, and Desk Structure with your editorial team. Sanity schemas are code, we commit them alongside the frontend from day one.
Frontend Design
Figma designs for all Portable Text block types and page templates. Approved before Next.js build begins.
Build in Parallel
Schema, queries, and frontend developed together, TypeGen keeps types in sync automatically as schemas evolve.
Preview & Launch
Presentation Tool configured, webhooks set up, ISR verified, editorial team trained. Launch-ready.
(FAQ)
Sanity questions,
from developers and editors.
Why do you recommend Sanity over Contentful?
For most projects, Sanity is our first recommendation because: GROQ is more expressive than GraphQL for content queries, the free tier is significantly more generous, the Studio is fully programmable in TypeScript, Portable Text travels to any rendering platform, and the Presentation Tool's visual editing experience is among the best in the industry. Contentful has advantages in enterprise tooling and out-of-the-box polish. We recommend honestly based on your specific team and project.
Do you use Sanity yourselves?
Yes, this site is built on Next.js + Sanity. We use it for our own CMS rather than WordPress because the content model flexibility and Studio programmability match the way we prefer to work. When we recommend Sanity to clients, we're recommending a tool we know intimately from daily use.
What is GROQ and why does it matter?
GROQ (Graph-Relational Object Queries) is Sanity's query language, purpose-built for querying document graphs. Unlike GraphQL, GROQ lets you project exactly the fields you want, join across document references, and filter in a single query without resolver functions. The result is efficient, readable queries and type-safe response shapes generated by Sanity TypeGen.
What is Portable Text?
Portable Text is Sanity's rich text format, instead of HTML, rich text is stored as a structured JSON tree where every element (paragraph, heading, image, custom block) is a typed object. This means the same content can render correctly on a Next.js website, a React Native app, an email template, or a PDF without format-specific workarounds. Custom block types are registered in your schema and rendered by custom React components.
How does Sanity's visual editing work?
Sanity's Presentation Tool renders your Next.js site in an iframe alongside Sanity Studio. Clicking any rendered element on the frontend highlights the corresponding field in Studio and vice versa. Edits in Studio update the frontend in real-time via the Content Source Map. It's the most intuitive CMS preview experience available, editors see exactly what they're changing, in context.
How much does a Sanity + Next.js website cost?
A marketing site with Sanity + Next.js (10–15 document types, Presentation Tool, basic migration) typically costs £8,000–£16,000. A larger site with complex Portable Text blocks, custom Studio plugins, and localization typically costs £15,000–£30,000. Sanity itself is free for most projects (free tier) or $15–$99/month for production. Flat written quote after a free discovery call.
(Start a project)
Free 30-min call.
Flat quote.
No prepayment.
Tell us about your content. We’ll design the schema and recommend the right rendering strategy before quoting flat.
GROQ. Portable Text. Visual editing. →
The CMS stack we use ourselves. Free discovery call. Flat quote.
WebAnts is a London Sanity CMS development agency. We build Sanity + Next.js websites with custom document schemas, GROQ queries, Portable Text rendering, visual editing via the Presentation Tool, and TypeScript-typed query results. Sanity is the CMS we use for our own website. Based in London. 4.9★ rated on Google and Clutch.