Sanity, Payload CMS, and Hygraph each target different budgets and team sizes — and the pricing structures are different enough that a direct comparison saves real money at decision time. This post puts all three side by side with concrete numbers, not marketing copy.
Why this three-way matters
Most pricing comparisons pit Sanity against Contentful or Storyblok. Those matchups get covered. What gets missed is the triangle formed by Sanity (API-first, per-seat plus usage), Payload (self-hosted open-source), and Hygraph (GraphQL-native, plan-gated). They compete for the same Next.js project budget at the $0–$1,000/month band, but the upgrade triggers are completely different — and picking the wrong one means an unexpected bill at the worst possible moment.
Free tier limits at a glance
| Feature | Sanity Free | Payload (open source) | Hygraph Hobby (free) |
|---|---|---|---|
| Seats / editors | 20 (no extra seats on Free) | Unlimited (self-host) | 3 |
| API requests | 1M CDN + 250K API req/mo | Unlimited (self-host) | Check Hygraph's pricing page |
| Bandwidth | 100 GB/mo | Depends on host | Check Hygraph's pricing page |
| Documents | 10K | Depends on your database | Check Hygraph's pricing page |
| Datasets / environments | 2 public datasets | 1 DB per instance | Check Hygraph's pricing page |
| Roles | 2 | Code-defined access control | 2 standard roles |
| Self-host option | No (Studio can be self-hosted; content is hosted by Sanity) | Yes (MIT licence) | No |
| Hosted admin | Yes (sanity deploy) |
Self-host (Payload Cloud is paused for new projects) | Yes |
Payload's "free" tier is really just the open-source licence — you still pay for compute, Postgres, and storage wherever you deploy it.
Sanity pricing in 2026
Sanity charges per seat on Growth, plus usage above the included quotas. The Free plan includes 20 seats, 1M API CDN requests, 250K API requests, 100 GB of bandwidth, and 10K documents per month. The Growth plan is $15 per seat/month with up to 50 seats, 25K documents, private datasets, and pay-as-you-go overage instead of hard caps (per Sanity's pricing page at the time of writing):
- API CDN requests: $1 per additional 250K
- API requests (uncached, including writes): $1 per additional 25K
- Bandwidth: $0.30 per additional GB
On Free, the usual upgrade triggers are needing private datasets, more than 10K documents, or more than 20 seats — or bandwidth on image-heavy sites, since Free has no overage. A marketing site pulling 50 Sanity-hosted images per page view at 200–400 KB each burns through 100 GB faster than you'd expect. Run the numbers before launch.
Enterprise pricing is custom and gated behind a call.
Payload CMS pricing in 2026
Payload's open-source version is MIT-licenced and genuinely free to self-host. The real cost is infrastructure:
- Railway (hobby): ~$5–20/month for a small Node + Postgres instance
- Railway (production): $50–150/month depending on memory and storage
- Vercel + Neon: $0–25/month at small scale. Payload 3 runs inside your Next.js app and can deploy to Vercel's Node.js runtime (not the edge runtime)
- Payload Cloud: after Payload joined Figma, deployment of new Cloud projects was paused; existing Cloud projects keep running. Don't plan a new project around it until that changes.
Prices are approximate and depend on your host's current pricing. There's no per-seat cost — you control access in code via access control functions.
The cost driver on Payload is almost always compute: scheduled jobs, background processing for uploads, or a media library that's grown beyond what a small instance can handle without spiking memory.
Hygraph pricing in 2026
Hygraph's free Hobby plan is more restrictive than it looks: 3 seats, 2 standard roles, and 2 locales. Hygraph's pricing page currently lists three plans:
- Hobby: free
- Growth: from $199/month (10 seats, 3 locales, 4 standard roles)
- Enterprise: custom
Hygraph has changed its plan lineup and prices more than once, so check hygraph.com/pricing for the current tiers and any per-seat add-on costs before you quote a client.
The jump from Hobby to Growth is a significant cliff. Most teams hit it when they need more than 3 editors, more locales, or more roles.
Hygraph's GraphQL-native approach and content federation feature are genuinely differentiated, but $199/month is a hard number to justify for a small team when Sanity Growth at $15 per seat covers most of the same content modelling surface.
Side-by-side cost at three team sizes
| Scenario | Sanity | Payload | Hygraph |
|---|---|---|---|
| Solo dev, 1 project, no editors | $0 | $5–20/mo (VPS) | $0 |
| 3-person team, moderate traffic | $0 (Free) or $45/mo (Growth, 3 seats) | $20–100/mo (hosting) | $0 (at edge of Hobby) |
| 10-person team, heavy media | $150/mo (Growth, 10 seats) + overages | $50–150/mo (hosting) | From $199/mo (Growth) |
| 50K+ API ops/day | Growth seats + usage overages | Self-host; infra scales | Growth or Enterprise |
These are rough estimates based on list prices at the time of writing — check each vendor's pricing page.
What actually triggers an upgrade on each platform
Sanity: document count, private datasets, or bandwidth from media-heavy pages. A Sanity image URL without ?w=800&auto=format serves the original. One unoptimised image fetch per visitor at scale blows through 100 GB quickly. Fix: always use the @sanity/image-url builder with explicit width and format parameters, and lean on next/image to gate what gets requested.
Payload: compute and database. Payload can run serverless on Vercel, but image processing, hooks, and background jobs all consume function time, and you still pay for Postgres and file storage. Heavy job queues often push teams to persistent compute. Budget roughly $50–100/month for a production-grade setup.
Hygraph: seats and the jump to Growth. If a client has 4+ editors, you're on a paid plan from $199/month. There's no middle tier between Hobby and Growth. Plan for it in the proposal stage.
Which one fits which project
Sanity Free-to-Growth works best for marketing sites and blogs where content editors are few but API traffic is high. On Growth, each seat adds $15/month, and usage overages are cheap.
Payload self-hosted is the right call when you want zero platform lock-in and your team can manage infrastructure. It's also the only option here with a fully custom access control system in code — no permissions UI to fight with.
Hygraph makes sense when the content federation feature is load-bearing — pulling from multiple APIs into a single GraphQL layer that editors see as one content surface. At $199/month and up, you need that feature to justify the cost over Sanity.
Top comments (1)