MigrateToAstro

Sanity or Webflow CMS for a marketing site

These are not two versions of the same product. Webflow CMS exists to put content onto the page you designed. Sanity exists to hold content that more than one thing will read. Most of the frustration on either side comes from hiring one to do the other's job.

MigrateToAstro Platforms

Summarize with AI

What is in this

I build on both, which is the only reason this is worth writing: almost every comparison of these two is published by somebody who sells one of them. The short version is that they are not competitors. Webflow CMS is a CMS attached to a renderer. Sanity is a content backend with no opinion about pages at all. Nearly every complaint I hear about either one is a complaint about using it as the other.

What the two things actually are

In Webflow, a collection and the template that renders it are the same decision. You add a field, and the field is available to drop onto a page in the Designer a second later. That tight coupling is the product. It is why a marketing team can ship a new content type in an afternoon without a developer, and it is the single thing no headless CMS gives you.

Sanity inverts that. You define documents in a schema file, in code, in your repository. Nothing renders. What you get back is an API, and something else entirely decides what a page looks like. The editor your team uses is itself an application you configure and deploy.

Where the content model gives

Webflow gives you collections, fields and reference fields. That covers a great deal, and it runs out in predictable places: deeply nested structure, a field that should hold a repeating group of things, and content that wants to be composed rather than filled in.

Sanity's model is closer to how a developer would design it if nobody had constrained them. Arrays of objects, nested types, unions of block types, and relationships that go where you point them. The cost is that every one of those decisions is a schema change, in a branch, reviewed and deployed, and there is no version of this where a marketer adds a field themselves.

The caps are worth being precise about because people repeat old numbers. Webflow's collections and items are capped per site plan, with the caps moving between plans and changing over time. Source: Webflow pricing They are real and they move with the plan, so the sentence that matters is not "Webflow caps out" but "check the cap against the catalog you actually have, on the plan you are actually on."

Rich text, which is where the real difference lives

Webflow's rich text field gives an editor a familiar box, and what comes out is HTML. It is easy to write into and hard to do anything else with. A heading is a heading because it is an h2, not because anything recorded that the author meant a heading.

Sanity stores rich text as Portable Text: an array of blocks with marks and, where you want them, custom types embedded in the flow. A pull quote is a pull quote as data. The upside is that the same article renders correctly into a website, an app and a newsletter, each deciding for itself what a pull quote looks like. The downside is that every renderer has to be told what each block becomes, and "we will just render the body field" is not a plan.

This is the thing to weigh, and it is usually weighed last. If the content is only ever going to be a web page, Portable Text is precision you pay for and do not spend.

Who is doing the editing, and what they can see

A Webflow editor sees the page. They change a heading and the heading changes in front of them, in the design, with the real fonts and the real spacing.

A Sanity editor sees the data, in a form. Preview is possible and good when it is built, and it is a thing somebody builds and maintains rather than a thing that is simply there. Whether that matters depends entirely on who edits. A content team that thinks in fields will prefer the form. A marketing team used to seeing the page will experience the form as a step backwards, and no amount of explaining the architecture will change that.

The option that is usually right

You can run both, and for a company already on Sanity this is more often the answer than a migration in either direction.

Sanity holds the content model and the editorial workflow. Webflow receives the subset the marketing site needs to render and stays the place the site is designed. Ownership is decided per field and written down, so two systems are never editing the same thing. Connecting Sanity with Webflow covers what that sync involves, including the parts that bite: Portable Text conversion rules, reference ordering, and the fact that a sync is a program somebody owns rather than an install.

How I would decide

One question, and it is not about features.

Does anything other than this website need to read this content? An app, a second site, a partner feed, a support portal, a product surface. If the honest answer is no and is likely to stay no, the coupling Webflow gives you is worth more than the flexibility you would be buying, and a headless setup converts marketing work into engineering work permanently.

If the answer is yes, Sanity is doing a job Webflow was never built for, and the question becomes whether the website reads from it directly or receives a copy. That is a smaller, cheaper decision than the one most teams think they are making.

I build both, and the sync between them. If you are weighing it, tell me what else reads the content. That answer settles most of it.

Reach out and see if we are a good fit.

Start a project

Currently booking two to four weeks out.