Sanity CMS consultancy
A job title appears incorrectly on three pages because it was entered three times. Editors avoid a field that no longer helps them. A listing loads slowly because its query fetches whole documents to show four lines. I trace these issues through the content model, Studio and frontend.
Send the schema, Studio setup, slow query, migration or proposal. I write down what to change and in what order.
100 USDexcl. VAT
- A content-model review before it locks in, or a restructuring plan for one that outgrew itself.
- A Studio, GROQ and frontend-integration review for your Next.js or Astro site.
- A migration plan, or a second opinion on a codebase or a proposal.

ECCA stores each speaker once
On the ECCA conference platform, sessions reference speaker documents. ECCA corrects a speaker's details once, even when that person appears in three sessions. The screenshot also shows reusable page sections. I check which content needs a reference and which belongs on one page.

Where an integration review looks
Visual Editing shows the gallery page beside its editable fields. I check the GROQ query, template data, preview, caching and generated types to make sure changes appear correctly.
A query review returns the projection each template needs
Before: whole documents, to render four lines
*[_type == "session"] {
...,
speaker->
}
// Every field of every session, plus the entire
// speaker document behind each one, sent over the
// wire so a card can show a title and a time.
After: the fields the card renders
*[_type == "session"] | order(startsAt asc) {
title,
startsAt,
"speakerName": speaker->name,
"speakerRole": speaker->role
}
// The projection matches the template. When the
// template changes, generated types fail the
// build before an empty card can ship.
FAQ
Scope and limits
What does this cover?
Content Lake and the content model: document types, references, reusable sections, localisation, multisite and multi-brand ownership. Studio: desk structure, previews, validation and roles. The frontend: GROQ shape, caching, preview, generated types and integrations on Next.js or Astro, including Vercel architecture. I also review migrations, codebases and proposals before you commit.
Is this a review, or do you make the changes?
I send written recommendations for your team to implement. If you want me to implement them in your repository and dataset, I write the changes up as a roadmap of tasks, each estimated in hours, and carry them out as you approve them, at 75 USD an hour excl. VAT.
How is the time scoped?
I take a first look, then reply with a fixed number of hours at 100 USD an hour excl. VAT, with a 300 USD minimum. A single schema or query question is usually a few hours, a content-model design or a migration plan a day or two. Nothing starts before you agree the hours.
Something else on your mind? The chatbot answers questions about my work from this site. Ask in English, Polish or your own language.
Ask the agentRelated reviews
I check the frontend queries too
I review the Next.js or Astro code that fetches Sanity content, as well as the schema. I also work with Storyblok.
In practice
How a Sanity review runs
Send the project and the question
Read access to the Studio and frontend repositories, and a sentence on what is at stake.
I read the project first
The document types, desk structure, queries and frontend wiring your question touches, then a fixed number of hours at 100 USD an hour excl. VAT, with a 300 USD minimum.
You get a recommendation with the trade-offs
What to change in Content Lake, Studio, the frontend or its integrations, which decisions need approval, and the order to implement them.
Sanity CMS consultancy
100 USDexcl. VAT
- A target architecture across Content Lake, Studio, Next.js, Vercel and external integrations.
- A documented choice for the document and object types, with decision gates before implementation starts.
- A content-model review, or a restructuring plan for one that outgrew itself.
- A Studio review: desk structure, previews, validation, roles.
- A GROQ and frontend-integration review for your Next.js or Astro site.
- A migration or import plan, in the order that loses nothing published.
- A second opinion on a Sanity codebase or a proposal before you commit to it.
Get in touch
Send the question
Send read access to the Studio and the frontend repository, plus a sentence on what is at stake - the schema about to lock in, the editors working around a field, or the query nobody wants to touch.
Working with an AI agent?