Best Headless CMS for Shopify: DatoCMS vs Sanity, or Are Metaobjects Enough?
DatoCMS, Sanity, or are Shopify metaobjects enough? A practical comparison for Shopify brands: editing, EU hosting, pricing and when to pick which.
TL;DR: Looking for the best headless CMS for Shopify? First check if you need one. If your store mostly needs extra product info and a few landing pages, use Shopify metaobjects. No extra CMS needed. If content drives your sales (stories, campaigns, several countries and languages) and you're building a custom Next.js site, add a separate CMS. We pick DatoCMS for most EU brands: editors learn it fast and the data is stored in the EU. Sanity fits better when your own developers want to build the whole editing screen in code.
A heads-up: we're a DatoCMS agency partner. Our advice comes from the Shopify and DatoCMS projects we've built and run ourselves.
What is a headless CMS? (Wat is een headless CMS?)
A CMS is where you write and manage content. A headless CMS only stores that content. It doesn't decide how the website looks. Your developer pulls the content in through an API (a standard way for two systems to exchange data) and builds the website around it.
For Shopify brands this usually means a custom website built in Next.js. Shopify still handles products, prices, cart and checkout. The CMS handles pages, stories and campaigns.
What you get: marketing edits content in one place, and developers can build the website without being tied to a Shopify theme. What it costs: one more system to set up, pay for and maintain. So the first question is not "which CMS?" but "do we need one?"
Do you need a separate CMS for Shopify?
Often not. Shopify has its own way to store structured content: metaobjects. Think of a metaobject as a custom content type, like "ingredient" or "store location", with your own fields.
According to Shopify's documentation, a store can have up to 128 metaobject definitions (256 on Plus). Each definition can have up to 40 fields and up to 1,000,000 entries (Shopify.dev). You can also give each entry its own web page, using a template you set up in the theme editor (Shopify Help Center).
Metaobjects are usually enough when:
- you use a standard Shopify (Plus) theme and plan to keep it
- your content is things like product specs, ingredients, size charts, FAQs, ambassador pages or store pages
- one team runs one or two countries
- you don't want another subscription and another login
A separate CMS makes sense when:
- stories and campaigns are a big part of how you sell
- marketing wants to build new landing pages from ready-made blocks, without a developer
- you publish in several languages, with different content per country
- the same content also has to appear outside the store (a brand site, an app, an event site)
- you're building a custom website anyway, for design freedom or speed
On our e-commerce services page we explain when we build a custom (headless) Shopify site and when we stay with a standard Shopify theme.
DatoCMS vs Sanity vs Shopify metaobjects at a glance
Metaobjects aren't a CMS. They're structured data built into Shopify itself. They're in this table as the "no extra CMS" option, so you can see what you gain and what you give up by adding DatoCMS or Sanity.
| Shopify metaobjects | DatoCMS | Sanity | |
|---|---|---|---|
| Best for | Standard Shopify stores that need extra product info and landing pages | Content-heavy custom Shopify and Next.js sites run by marketing teams | Teams with developers who want to build their own editing screen |
| Editing | In the Shopify admin and theme editor | Ready-made editor with forms and content blocks; editors can start right away | Sanity Studio, set up in code; very flexible, but only as good as the setup |
| Building pages | Theme sections and metaobject templates | Content blocks that editors stack into pages | Rich text with custom block types |
| Link to Shopify | Built in | Through Shopify's API; there is a plugin to pick Shopify products in the editor (DatoCMS marketplace) | Official Sanity Connect app copies products, variants and collections into Sanity (Sanity docs) |
| Where data is stored | Shopify's servers | EU only (Ireland), according to DatoCMS (DatoCMS community) | Not listed on the pricing page; ask Sanity for your plan |
| Price (at the time of writing) | Included in your Shopify plan | Free plan (1 collaborator, 300 records); Professional from €149/month, billed yearly (DatoCMS pricing) | Free plan (up to 20 seats); Growth $15 per seat per month (Sanity pricing) |
| Watch out for | Max 40 fields per definition; content only lives in Shopify | Limits on records and API calls go up with each plan | Every synced product, variant and collection counts as a document (Sanity docs) |
When Shopify metaobjects are enough
Metaobjects live right next to your products. There is nothing to sync, so nothing can go out of sync. Your team edits them in the Shopify admin they already know. Theme developers can show the fields directly in theme sections.
For a brand on a well-built Shopify theme, a few clear metaobject types often cover everything marketing needs. For example: ingredient, collection story, ambassador and FAQ group.
Where metaobjects fall short:
- Building free-form pages. Each entry can get its own page, but a campaign page built from mixed blocks still needs theme work.
- Content outside Shopify. If a brand site or app needs the same content, you have to pull it out through Shopify's API anyway.
- Different content per country. Different stories, reviewers and workflows per market is where a separate CMS starts to pay off.
What about a headless Shopify site? Metaobjects can still be enough there. Your Next.js frontend reads them through Shopify's Storefront API, just like your products (Shopify.dev). For simple, fixed content like specs, ingredients or FAQs that works well, on its own or next to a CMS. What you miss are the things a headless CMS does add: building pages from blocks, a live preview of your own frontend, and an editorial workflow with drafts, scheduling and roles.
When DatoCMS is the best headless CMS for Shopify
DatoCMS is our default for custom Shopify builds. The main reason: marketing teams can use it without a training day. Editors build pages from content blocks we design for the brand. They can move blocks around, but they can't break the design.
DatoCMS also stores all its data in the EU (Ireland). For Dutch and EU clients that saves a round of questions about where customer content lives.
Two projects show how we split the work between DatoCMS and Shopify:
The Laundry Story: stories that sell products. In The Laundry Story, DatoCMS decides which pages exist and how they're built. The team makes new pages from blocks without a developer. Shopify owns product and collection pages. If nobody writes extra content for a product, its page still shows in full, straight from Shopify. We built a DatoCMS plugin so editors can link Shopify products, variants and collections to a content block by picking them from a list. No copying IDs. The site runs on Next.js and Vercel. Pages are pre-built and refresh automatically when content changes. We delivered it in three months.
Orangefit: one headless Shopify store for several countries. For Orangefit we combined Shopify, Next.js and DatoCMS with Algolia (search), Firmhouse (subscriptions), Yotpo (loyalty) and Klaviyo (email). The site runs in several markets and languages. The content team publishes pages and campaigns on its own. The extra CMS didn't slow the site down: the case study reports all Core Web Vitals in the green, with a 1s LCP, 143ms INP and 0.02 CLS.
It works without Shopify too. For Milkshake Festival we worked with agency Bold Boy to move the site from Nuxt 2 to Next.js and DatoCMS in four weeks. We moved about 7 GB of media. Editors now see a live preview that updates when they save, so checking a page is part of publishing, not a separate step.
Not sure which setup fits your store? Send us your current setup and content plans. We'll tell you whether metaobjects will do or a separate CMS is worth it, with a fixed-price scope either way. Get in touch.
When Sanity is the better choice
We'd recommend Sanity when:
- your own developers want to define the whole editing screen in code, in the same project as the website
- you need custom editing tools: your own input fields, approval steps or dashboards
- you want Shopify data inside the CMS. The official Sanity Connect app copies products, variants and collections into Sanity. It can also send your own content back to Shopify as metafields and metaobjects, so a Shopify theme can use it too (Sanity docs)
Two things to plan for. Every synced product, variant and collection counts towards your Sanity document limit. With a large catalogue that adds up. And Sanity Studio is only as good as the developer who sets it up. A quick, bare setup gives editors a worse experience than a ready-made editor.
How to choose: 7 questions
Go through these with your marketing lead and your developer together:
- Will we stay on a standard Shopify theme for the next two to three years? If yes, start with metaobjects.
- Do stories and campaigns drive sales, or do they just support the products? Drive sales: separate CMS. Support: metaobjects.
- How many countries and languages, and does content differ per country? Different content per country points to a separate CMS.
- Who builds new landing pages now, and how long does it take? If the answer is "a developer, in a week", you need page building from blocks.
- Do we need data stored in the EU, for contracts or company policy? Ask each vendor where the data lives and get it in writing. DatoCMS states it only hosts in the EU.
- Who will maintain the editing setup? No developers in-house? Pick a CMS that works well out of the box.
- What will it cost at our size? Calculate records, seats, API calls and bandwidth for your real catalogue and traffic, not the free plan.
Mistakes we see when brands pick a CMS
- Choosing on the demo. How you structure your content (blocks, links between items, countries) matters more than which CMS you pick. A good structure outlasts any tool.
- Copying product data into the CMS. Keep products, prices and stock in Shopify. The CMS adds content around them. It doesn't duplicate them.
- Giving editors total freedom. A page builder that allows anything slowly breaks your brand. A fixed set of on-brand blocks keeps pages consistent and fast. More on that on our about page.
- No preview. Without a live preview and automatic page refresh, editors publish blind or wait for a rebuild.
- No handover. If only one developer understands the setup, you've just moved the bottleneck. That's why our process has a separate handover step.
FAQ
What is the best headless CMS for Shopify?
There isn't one best choice for everyone. For most content-heavy EU brands building a custom Next.js site, we recommend DatoCMS: editors learn it fast and data is stored in the EU. Sanity suits teams whose developers want to build their own editing screen. Stores that stay on a standard Shopify theme are often best off with Shopify metaobjects.
Wat is een headless CMS?
A headless CMS stores your content and sends it through an API to any website or app, for example a Next.js webshop. It doesn't control how the site looks. Shopify handles products and checkout; the CMS handles pages and stories.
Can Shopify metaobjects replace a CMS?
For many standard Shopify stores, yes. They work well for product details, FAQs and repeatable landing pages. They fall short for free-form page building, content used outside Shopify and different content per country.
Is DatoCMS GDPR-friendly?
DatoCMS says all its hosting and data storage is in the EU (Ireland). Whether you're GDPR compliant still depends on how you use any tool, so have your legal team check the data processing agreement.
Is Sanity or DatoCMS cheaper?
It depends on your size. At the time of writing, Sanity Growth costs $15 per seat per month and DatoCMS Professional starts at €149 per month, billed yearly. Both have a free plan. Calculate records, documents (including synced Shopify products in Sanity), seats and API use at your real size.
Does a headless CMS slow down my Shopify store?
Not when it's built well. Pages are built ahead of time and refreshed when content changes, so visitors get a ready-made page. Our headless Orangefit build with DatoCMS passes all Core Web Vitals.
Choosing your CMS with us
The best headless CMS is the one your team will actually use: blocks that fit your brand, a clear preview, and Shopify as the one place for products and prices. We build standard Shopify (Plus) stores with well-structured metaobjects, and custom Shopify sites on Next.js with DatoCMS. We'll tell you which one you need. Building a content-heavy website without a store? See our Next.js website services.
Planning a new store or outgrowing your theme? Book an intake and get a fixed-price proposal: petercoolen.com/contact, info@petercoolen.com or +31 6 57 54 60 27.