Sanity, Payload CMS, and Contentful pricing in 2026 looks radically different depending on how you count. Sanity charges per seat plus usage, Payload is open-source but carries real infrastructure costs, and Contentful's jump from free to its first paid plan is steep. This post puts all three side by side with real numbers so you can make an informed decision before you commit.
Why these three get compared
These are the three CMS options I see shortlisted most often for Next.js App Router projects. Sanity is the structured-content default for most greenfield work. Payload is the choice when teams want an open-source, self-hosted option with a proper TypeScript-native schema layer. Contentful is the incumbent — huge enterprise penetration, a recognisable brand, and pricing that surprises people the first time they see a quote.
They serve similar use cases but land in completely different cost brackets depending on your team size, traffic, and whether you want to manage infrastructure.
Sanity pricing in 2026
Sanity's Free plan gives you up to 20 seats, 2 public datasets, 10k documents, 1M API CDN requests and 250k API requests per month, 100 GB bandwidth, and 100 GB of assets. For a small marketing site or a developer experimenting, that holds for a surprisingly long time.
The Growth plan is $15 per seat per month (Viewer seats are free), up to 50 seats. It adds private datasets and raises documents to 25k, with the same 1M API CDN / 250k API request quotas, and pay-as-you-go overages: $1 per extra 250k API CDN requests, $1 per extra 25k API requests, $0.30/GB bandwidth and $0.50/GB assets (sanity.io/pricing at the time of writing).
Enterprise pricing is custom, with negotiated quotas, SLAs and dedicated support.
Note: Growth is billed per seat, so cost scales with your editing team — but because the Free plan already allows 20 seats, many small teams never need to pay for seats at all.
Payload CMS pricing in 2026
Payload itself is MIT-licensed and free. There is no per-seat cost, no API request limit tied to the CMS vendor, and no bandwidth charge from Payload. Your cost is entirely infrastructure.
Payload Cloud, the managed hosting option, is not a realistic choice for new projects right now: after Payload joined Figma (June 2025), Payload announced that deployment of new Cloud projects is paused, with existing Cloud projects kept running. Check payloadcms.com for its current status. In practice, budget for self-hosting.
If you self-host on Railway or Fly.io instead: expect $20–$60/month for a small project (shared Postgres instance + small container). Add managed Postgres from Neon or Supabase ($0–$25/month) and a CDN (Cloudflare free tier covers most cases). Total self-hosted cost for a small production project sits around $30–$80/month — you are on the hook for uptime.
Contentful pricing in 2026
Contentful's Free plan caps users, records, and monthly API calls, and the limits have changed several times — check contentful.com/pricing for the current numbers before you rely on it. It is genuinely limited for a production site with frequent revalidation.
The entry paid plan (Lite) has been listed at around $300/month at the time of writing. That jump — from $0 to roughly $300 — is the "Contentful cliff" the community has complained about for years. Above that, Premium is custom-priced.
Contentful's plans also cap spaces, environments, and locales, which matters for multi-brand or multi-region setups.
Side-by-side pricing table
| Sanity Free | Sanity Growth | Payload Self-Hosted | Contentful Free | Contentful Lite | |
|---|---|---|---|---|---|
| Monthly cost | $0 | $15/seat | ~$30–80 infra | $0 | ~$300 |
| Editor seats | Up to 20 | Up to 50 (paid per seat; Viewers free) | Unlimited | Capped | Capped |
| API requests | 1M CDN + 250k API/mo | 1M CDN + 250k API/mo, then pay-as-you-go | No limit (vendor) | Capped | Higher cap |
| Documents | 10k | 25k | Depends on DB | Capped records | Capped records |
| Asset storage | 100 GB | 100 GB, then $0.50/GB | Depends on host | Capped | Capped |
| Bandwidth | 100 GB | 100 GB, then $0.30/GB | Depends on host | Capped | Capped |
| Hosted | Yes | Yes | No | Yes | Yes |
| TypeScript schemas | Yes (TS config + TypeGen) | Yes (TS config + TypeGen) | Yes (native TS) | No | No |
Contentful caps change often; check its pricing page for current numbers.
What actually triggers an upgrade
Sanity: The trigger is usually private datasets, the 10k document cap, or needing pay-as-you-go headroom on API requests — not users, since Free allows 20 seats. A Next.js site revalidating dozens of routes every few minutes can eat into the 250k uncached API requests faster than you expect, so prefer the API CDN and tag-based revalidation. Moving to Growth ($15/seat/month) is low friction — the bigger risk is not watching overage costs if traffic spikes.
Payload: The trigger is infrastructure reliability, not the software. A minimal container and shared database will struggle under sustained traffic, and moving to properly sized hosting happens when you need uptime guarantees. With new Payload Cloud projects paused, teams without a DevOps person need a managed platform (Vercel plus a managed Postgres, for example) or someone to own the infrastructure.
Contentful: The trigger is hitting the Free plan's user, record, or API-call caps, which happens fast. The roughly $300/month jump is brutal for small teams. If you are a 3-person team with a modest site, you will either stay artificially small on Free or swallow a significant cost jump. There is no middle tier.
Which one is cheaper at different scales
Solo developer / tiny site: Sanity Free or Payload self-hosted. Contentful Free is too limited on API calls for a Next.js ISR setup.
5–10 editors, moderate traffic: Sanity wins on cost. Free covers up to 20 seats if public datasets and 10k documents are enough; Growth at $15/seat/month (so $75–$150/month for 5–10 paid seats) still undercuts Contentful Lite. Payload self-hosted is cheaper on paper but costs DevOps time.
15–30 editors, multi-locale: Payload self-hosted if you want no seat costs and own your data. Sanity Growth costs $225–$450/month for 15–30 paid seats (Viewers free), so it is no longer automatically the cheapest. Contentful Lite (~$300/month) only makes sense if your team is deeply embedded in the Contentful workflow and unwilling to migrate.
Enterprise / multi-brand: Contentful has the deepest enterprise tooling (Workflows, Tags, Organisations). The cost reflects that. Sanity Enterprise competes at similar price points. Payload Enterprise is an emerging option — worth evaluating if data residency or full schema control matters more than enterprise support SLAs.
The honest verdict
For most Next.js + Sanity shops reading this: Sanity Free, then Growth at $15/seat/month, is the easiest decision at small-to-medium scale. Payload makes sense when you need TypeScript-native schemas, full data ownership, and are comfortable managing infrastructure. Contentful's pricing model has not caught up with the market — the $0-to-$300 cliff is a legitimate reason to look elsewhere in 2026, not just a community gripe.
Top comments (0)