A Sanity CMS development services proposal should tell you exactly what you're buying, when you'll see it, and what happens when scope shifts. Most proposals I see from developers — including ones I competed against early in my career — skip at least two of those three. Here is what a real one looks like, pulled from a proposal I sent to a mid-sized e-commerce brand in early 2026.
What the proposal structure actually contains
A well-structured proposal is not a price list. It is a project contract in plain language. Mine runs four sections: scope, milestones with deliverables, payment schedule, and change-order policy. Buyers should expect all four. If a developer sends you a single paragraph with a number at the bottom, that is not a proposal — it is a quote, and quotes do not protect either party.
Scope names every content type, every page template, every integration. My 2026 proposal listed: 9 Sanity schema types (product, article, author, category, FAQ, navigation, settings, redirect, legal page), one Next.js App Router front-end, Vercel deployment with preview URLs, and no Algolia or e-commerce API work unless a change order was signed. That last sentence is the boundary. Buyers often gloss over the exclusion list; it is actually the most important paragraph in the document.








