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
| Feature | Sanity Free | Payload Free (self-hosted) | Keystatic Free |
|---|---|---|---|
| Hosted by vendor | Yes | No | Optional (Cloud) |
| Datasets / projects | 2 datasets (public only), 10k documents | Unlimited (self-host) | Unlimited repos |
| Users / editors | Up to 20 seats | Unlimited | Unlimited |
| API requests | 1M CDN + 250k API requests/month | Unlimited (your server) | Git API limits apply |
| Assets / storage | 100 GB assets, 100 GB bandwidth | Your own storage | Git LFS or external |
| GROQ / query API | Included | REST + GraphQL included | N/A (Git reads) |
| Environments (staging) | 2 datasets (e.g. production + staging) | Separate deploys | Branch-based |
| Sanity Studio hosting | Included | Self-host | Self-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
| Plan | Sanity | Payload | Keystatic 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 upgrade | Private datasets, >10k documents, >20 seats, request/bandwidth overages | Outgrowing your server | More cloud users or features |
| Per-seat cost | $15/seat/month on Growth | None (self-hosted) | See Keystatic's pricing |
| Staging environment | 2 datasets included; extra datasets are a paid add-on | Separate deploy | Branch-based (free) |
| Overages | Pay-as-you-go on Growth | Your server limits | Git API limits |
| Enterprise | Custom | Custom (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 size | Sanity | Payload (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/month | Keystatic Cloud plan if used |
| 20+ editors, multi-locale | $300+/month (Growth) or Enterprise | $100–150/month infra | Not 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.