Sanity vs Payload CMS vs Keystatic: Pricing Comparison 2026

By Nayan Kyada · · 6 min read

Part of The Sanity + Next.js Guide

Choosing between Sanity, Payload CMS, and Keystatic almost always comes down to pricing at some point in the conversation. All three have free paths to production, but the cost curves diverge sharply once you add seats, environments, or serious traffic. Here is what you actually pay at each tier in 2026.

Why this comparison matters

Sanity is API-first, fully hosted, and charges by usage and seats. Payload is open-source and self-hosted, shifting cost to infrastructure. Keystatic is Git-based and pushes most cost to your Git host and optional Keystatic Cloud. Prices below are list prices at the time of writing — check each vendor's pricing page before you commit. They solve overlapping problems — structured content for Next.js apps — but they are not interchangeable once you account for team size, deployment complexity, and who pays the ops bill.

The sticker price rarely tells the full story.

Free tier limits side by side

FeatureSanity FreePayload Free (self-hosted)Keystatic Free
Hosted by vendorYesNoOptional (Cloud)
Datasets / projects2 datasets (public only), 10k documentsUnlimited (self-host)Unlimited repos
Users / editorsUp to 20 seatsUnlimitedUnlimited
API requests1M CDN + 250k API requests/monthUnlimited (your server)Git API limits apply
Assets / storage100 GB assets, 100 GB bandwidthYour own storageGit LFS or external
GROQ / query APIIncludedREST + GraphQL includedN/A (Git reads)
Environments (staging)2 datasets (e.g. production + staging)Separate deploysBranch-based
Sanity Studio hostingIncludedSelf-hostSelf-host

Sanity's free tier is genuinely useful for a small project: up to 20 seats covers most small teams. The limits you're more likely to hit are the 10k document cap, public-only datasets, and the request quotas — 1M CDN requests sounds large, but uncached API requests (250k) from preview and live-editing sessions can add up faster than expected. There's no pay-as-you-go overage on Free, so hitting a limit means upgrading.

Payload's free tier is unlimited in every meaningful sense because you own the server. But "free" here means you are running a Node.js process somewhere. A Railway Hobby plan ($5/month), a Render free-tier instance (with cold starts), or a VPS at $6/month from Hetzner — that's your baseline, not zero.

Keystatic's free tier is genuinely zero if you stay on the open-source path and store content in your Git repo. GitHub or GitLab is the database. For most small sites, this is fine. For large content libraries (hundreds of documents with media), Git history bloat becomes a real problem.

Paid tier thresholds

PlanSanityPayloadKeystatic Cloud
Entry paid$15/seat/month (Growth)Your hosting bill (Payload Cloud is closed to new projects)Check keystatic.cloud for current plans
What triggers upgradePrivate datasets, >10k documents, >20 seats, request/bandwidth overagesOutgrowing your serverMore cloud users or features
Per-seat cost$15/seat/month on GrowthNone (self-hosted)See Keystatic's pricing
Staging environment2 datasets included; extra datasets are a paid add-onSeparate deployBranch-based (free)
OveragesPay-as-you-go on GrowthYour server limitsGit API limits
EnterpriseCustomCustom (via your hosting)Not yet a clear path

Sanity's Growth plan at $15/month per seat is the most common pain point. A five-person editorial team — three editors, one PM, one developer — sits at $75/month before you've counted bandwidth or request overages. Growth includes two datasets, so production plus staging doesn't add cost; a third dataset is an expensive add-on. That's not outrageous for a professional content operation, but it surprises teams coming from self-hosted WordPress.

Payload Cloud is no longer an option for new projects: since Payload joined Figma, new Payload Cloud sign-ups have been paused (existing Cloud projects keep running). In practice, choosing Payload today means self-hosting on Vercel, Railway, Render, a VPS, or similar. It has no per-seat cost, so for a team of developers with no non-technical editors it is often cheaper than Sanity Growth.

Keystatic Cloud adds hosted auth and image handling on top of the open-source tool; check keystatic.cloud for current pricing. Keystatic's architecture means it only makes sense for content that lives happily in a Git repo — flat Markdown or YAML files, reasonable document counts, no heavy asset management. For a developer blog or docs site it's excellent. For a marketing team managing hundreds of landing pages with hotspot images and scheduled publishing, it's the wrong tool regardless of price.

Self-hosted cost reality for Payload

Payload's self-hosted path deserves its own accounting. At minimum:

  • Compute: Railway Pro ($20/month), Render Starter ($7/month), or a $6 Hetzner VPS
  • Database: MongoDB Atlas free tier covers small projects; M10 cluster (production-appropriate) starts at ~$57/month
  • File storage: AWS S3 free tier for the first year, then ~$0.023/GB/month
  • Backups, monitoring: optional but real costs in any serious deployment

A realistic production Payload setup runs $30–100/month before you hire anyone to maintain it. That's still competitive with Sanity Growth for large teams, but it's not free infrastructure.

Total cost of ownership at three scales

Team sizeSanityPayload (self-hosted)Keystatic
Solo dev, personal project$0~$6–12/month$0
3-person startup (2 editors)$0 (Free) or $45/month (Growth)~$30–60/month$0 + Keystatic Cloud if used
8-person team (5 editors)$0 (Free) or ~$120/month (Growth)~$60–100/monthKeystatic Cloud plan if used
20+ editors, multi-locale$300+/month (Growth) or Enterprise$100–150/month infraNot recommended

Which one to pick based on budget

Sanity wins on editor experience and GROQ flexibility. The cost is predictable once you've settled your seat count. For teams where non-technical editors are the majority of users, the per-seat model is worth it — the Studio quality keeps support tickets low.

Payload wins on total cost for developer-heavy teams or when you need full control of your data layer. Self-hosting has a real ops cost, but if you're already running infrastructure (many product teams are), adding Payload is marginal. Just budget for the ops work, since Payload Cloud isn't available for new projects.

Keystatic wins for content-in-Git workflows — docs sites, developer blogs, small marketing sites where a developer is close to the content. The pricing is lowest, the architecture is simplest, and branch-based staging is built in for free. It is the wrong choice when editors outnumber developers or when content is too large for a Git repo.

None of these is universally cheapest. The gap between them matters most at the 5–20 editor range, where Sanity's per-seat cost accumulates and Payload's self-hosting complexity starts to feel justified.