ButterCMS review
Best for adding a blog to an existing app

ButterCMS is a hosted headless CMS organised around three shapes: Page Types for anything with a URL, Collections for reusable records, and a blog engine whose schema cannot be changed. Content leaves through a REST API cached by Fastly, with ten official SDKs. Since 14 December 2022 the company has belonged to Tiugo Technologies, a PSG portfolio company whose other brands include TinyMCE and CKEditor.
Seats are not what you pay for. Every plan carries unlimited users, and the price climbs with API calls, bandwidth and counts of pages, posts, collections and assets. The pricing FAQ adds that no features are gated behind higher tiers. The plan cards on the same page disagree: the Write API and webhooks are add-ons from Advanced, locales begin on Professional, and workflows sit on Enterprise.
Two documented details change how you build on it. The docs call the read token safe for client-side code, and separately tell you to add preview=1 to that same token to fetch drafts, so whoever can see the token can see unpublished content. And webhooks get one delivery attempt with a five-second timeout and no retries.
Our scorecard
Our editorial read across six dimensions, scored 1 to 5. This is our own assessment, not an aggregate of user reviews, and it is deliberately kept out of the page's structured data.
- Content modelling3/5
Page Types, Collections, components and repeaters, with references resolved up to five levels. The blog schema is fixed.
- Developer experience3/5
A plain REST API and ten SDKs, offset by writes sold as an add-on, webhooks without retries and no documented field selection.
- Editor experience4/5
A complete blog workflow with scheduling, preview, revision history and a TinyMCE-based rich text editor.
- Pricing3/5
No per-seat charge at any size, but the add-ons that matter have no published price.
- Governance2/5
Two or three roles below Enterprise; approval workflows, custom roles and SSO need Enterprise or a support request.
- Ecosystem3/5
SDKs in ten languages, starters for most frameworks, a Heroku add-on and documented Zapier, Make and n8n recipes.
An editorial read, not an aggregate of user reviews, and deliberately kept out of this page's structured data.
ButterCMS in their own words
From ButterCMS's own YouTube channel. Vendor marketing rather than an independent review, included because it is the quickest way to see the product before you sign up.
What you can query
Read API: Pages
page_size up to 100; levels 1 to 5
Single Pages and Page Type entries by slug, with field filters in dotted notation, ordering, locale and draft access through preview=1.
Read API: Collections
Referenced from pages by numeric ID
Reusable records such as CTAs, testimonials or categories from /v2/content/, several keys in one request, filterable by field value.
Blog engine endpoints
Schema is predefined and cannot be modified
Posts, authors, categories and tags, plus generated RSS, Atom and sitemap feeds, with exclude_body to slim listing responses.
Write API
Paid add-on on Advanced and Professional
Writes to pages, collection items and posts, covering create, update and delete, with an Authorization header token. Writes return 202 Accepted and process asynchronously.
Webhooks
One attempt, 5-second timeout, no retries
POST notifications for page, post, collection item and media events, such as page.published or collectionitem.delete, with custom headers.
Image API
Media is delivered through CloudFront
Resize, crop, rotate and quality changes through URL tasks on cdn.buttercms.com, powered by Filestack and cached at the edge.
Who ButterCMS is for
Product and SaaS teams bolting a blog and a set of marketing pages onto an application that already exists, particularly when that app is Rails, Django, .NET, Go or mobile rather than a JavaScript framework. A large editorial group suits it, because adding writers costs nothing and the blog workflow is finished out of the box.
Content written by machines fits badly, because writes are an add-on from Advanced and absent below it. So do event-driven pipelines that cannot tolerate a webhook arriving once or not at all. Multi-language sites should start pricing at Professional.
Strengths and limits
What it does well
- Unlimited users on every plan, including Free, so a growing editorial team never changes the bill.
- The blog engine arrives finished: authors, hierarchical categories, tags, SEO and Open Graph fields, scheduling, RSS, Atom, a sitemap and a WordPress importer.
- Ten official SDKs cover JavaScript, Python, Ruby, PHP, Java, .NET, Go, Dart, Swift and Kotlin, with framework guides for Rails, Django, Laravel, Next.js, Nuxt, SvelteKit and Astro.
- Pages keep a draft version over published content, and revision history retains every version of pages and collection items.
- Paid plans are not blocked when they pass the monthly API call limit; only Free and trial accounts receive 429 responses.
- During the May 2025 dashboard incident, previously published content kept serving from the CDN, with about 3% of it affected, according to the vendor's post-mortem.
- Provisioning through Heroku injects the token as a config var and signs editors in through Heroku SSO.
Where it falls short
- The pricing FAQ says no features are gated by plan, yet the plan cards put the Write API, webhooks, video uploads, locales, multi environment and workflows behind higher tiers or add-ons.
- No Write API on Free or Basic at any price, and on Advanced and Professional it is an add-on capped at 2K and 5K writes a month.
- Add-on prices for the Write API, webhooks and video uploads are not published, so the real cost of a plan is a sales question.
- The read token documented as safe for browsers also returns drafts when preview=1 is added.
- Webhooks are delivered once with a five-second timeout and never retried, so a slow endpoint silently misses a publish.
- Blog posts cannot hold a draft over a published version, and their schema cannot be extended.
- Locales cannot be removed once added, and none are included below Professional.
- The vendor's status page records two critical incidents in 2025, on 19 May and 24 September.
ButterCMS pricing
The pricing page opens on yearly billing, so the headline figures are discounted. Basic is $71 a month billed yearly or $79 month to month, Advanced $224 or $249, Professional $359 or $399. Enterprise is quoted. Every plan, Free included, has unlimited users and components and a 14-day trial of the paid features.
What moves you up is volume, and the counters run in parallel: API calls, bandwidth, pages, blog posts, collections and assets. Free stops at 5 pages and 50 posts, Basic at 20 and 100, Advanced at 50 and 500, and Professional lifts the post cap entirely while allowing 100 pages.
Then come the add-ons. The Write API, webhooks and video uploads can be bought on Advanced and Professional only, and multi environment on Professional, with no prices shown for any of them. Writes are capped at 2K a month on Advanced and 5K on Professional, so a migration of thousands of entries either spreads across months or needs Enterprise.
Locales are the other step. Nothing below Professional includes one, Professional includes three, and Enterprise sets a custom number. Workflows, custom webhooks, a customer success manager and an SLA are listed on Enterprise, and SSO is an Enterprise add-on.
Free
$0
No card required; 14-day trial of paid plans
- Unlimited users, 50K API calls and 100GB bandwidth a month
- 5 pages, 50 blog posts, 50 collections, 500 assets
- Blocked with HTTP 429 at the monthly call limit
- No Write API and no webhooks
Advanced
$224 / mo
Billed yearly; $249 monthly
- 500K API calls and 500GB bandwidth a month
- 50 pages, 500 posts, 500 collections, 2K assets, 3 roles
- Add-ons: Write API up to 2K writes a month, webhooks, video
- Add-on prices are not published
Professional
$359 / mo
Billed yearly; $399 monthly
- 1M API calls and 1TB bandwidth a month
- 100 pages, unlimited posts, 1K collections, 3K assets
- 3 locales, the first tier with any
- Add-ons: Write API up to 5K writes, webhooks, multi environment
Query example
A minimal fetch against the live API, with credentials read from the environment rather than pasted inline.
curl -s -G "https://api.buttercms.com/v2/pages/landing-pages/" \ --data-urlencode "auth_token=$BUTTER_READ_TOKEN" \ --data-urlencode "fields.campaign=spring" \ --data-urlencode "order=-published" \ --data-urlencode "page_size=20" \ --data-urlencode "levels=1" # Keep the trailing slash on the path. Without it the API answers # with a 301 and the redirect counts as a second call against your # monthly quota. levels=1 returns references as URIs, not objects. # # Adding preview=1 to this same read token returns DRAFTS, so treat # the token as sensitive if unpublished content is.
Limits and quotas
- Free: 50K API calls, 100GB bandwidth, 5 pages, 50 blog posts, 50 collections, 500 assets, 2 roles, 2 templates.
- Basic: $71 a month yearly or $79 monthly; 100K calls, 250GB, 20 pages, 100 posts, 100 collections, 1K assets.
- Advanced: $224 yearly or $249 monthly; 500K calls, 500GB, 50 pages, 500 posts, 500 collections, 2K assets, 3 roles.
- Professional: $359 yearly or $399 monthly; 1M calls, 1TB, 100 pages, unlimited posts, 1K collections, 3K assets, 3 locales.
- Write API add-on limits: up to 2K writes a month on Advanced, up to 5K on Professional; custom on Enterprise.
- Free and trial accounts are blocked with HTTP 429 at the monthly call limit; paid plans are not.
- A request missing its trailing slash returns a 301 and counts as two calls.
- page_size maximum 100; reference levels 1 to 5, default 2; responses capped at 10MB.
- Webhook endpoints must answer within 5 seconds; failed deliveries are logged, not retried.
- SSO is Enterprise only, and user auto-provisioning is not supported.
What developers say on Reddit
Independent discussion of ButterCMS is thin, and most of what surfaces is the vendor talking. Of 23 comments containing the word ButterCMS in r/cms, 18 came from five accounts that speak for the vendor, by name, by saying our and us, or by linking with its developer-relations campaign tags. Those were excluded, which leaves a handful of practitioner voices spread over six years.
The voices that remain split cleanly. A Rails team describes it as a delight for exactly the job it is sold for, authors in the dashboard and content pulled into controllers with light caching. Against that, a 2026 commenter calls it slow, unreliable and overpriced, and complains that the REST API returns bloated payloads with no field selection.
We cannot verify the reliability claim from Reddit, but it can be checked against the vendor's own status page, which records two critical incidents in 2025. The field-selection point matches the endpoint reference we read, which offers exclude_body on posts and levels on references but no general projection. The pricing complaint is not new either: a 2020 comparison thread called it stupid pricing.
“We use Butter CMS (https://buttercms.com), and it's an absolute delight. Blog authors and editors interact with Butter, and we integrate the content straight into our controller and views with a very tiny caching layer applied to their client library.”
r/rails on Reddit“Someone mentioned ButterCMS, but I highly DO NOT recommend that option. They're slow and inefficient and consistently go down (but don't report it as much as they should).”
r/FullStack on Reddit“They're REST API doesn't offer the ability to exclude properties like GraphQL, so your API response payloads are huge and will slow the site down.”
r/FullStack on Reddit“Butter has stupid pricing, as does Cosmic and content stack (seriously, $3500/mo?).”
r/webdev on Reddit
Verdict
Pick ButterCMS when the job is a blog and marketing pages attached to an application, the team writing them is large, and nothing needs to push content in programmatically. Free users at every tier and a finished blog engine make that case well, especially for back ends outside JavaScript, where its SDK list is broad.
Price it from the plan cards, not the FAQ. The promise that no feature is gated does not hold once you need writes, webhooks, languages or approvals, and the add-ons carry no public price. Ask for the add-on quote before you ask for a demo, and remember that the yearly figures on the page are the discounted ones.
Engineer around two documented behaviours. Keep the read token server-side if drafts are sensitive, because preview=1 opens them to that token. And treat webhooks as hints rather than guarantees, with a scheduled rebuild or cache refresh behind them, since a missed delivery is never sent again.
ButterCMS FAQ
What does ButterCMS pricing look like month to month?
Higher than the page first shows, because it opens on yearly billing. Monthly, Basic is $79, Advanced $249 and Professional $399; yearly they fall to $71, $224 and $359 a month. Free is $0 and Enterprise is quoted. Add-ons such as the Write API and webhooks are extra, with no published price.Is the ButterCMS Write API included on every plan?
No. Free and Basic have no Write API at all. Advanced and Professional can buy it as an add-on, with writes capped at 2K and 5K calls a month respectively, and Enterprise includes it with a custom limit. The docs send you to Settings, then Billing, to buy it, or to support.Who owns ButterCMS?
Tiugo Technologies, a PSG portfolio company, which announced the acquisition on 14 December 2022 without disclosing terms. Tiugo's site still lists ButterCMS beside TinyMCE, CKEditor and Uploadcare. ButterCMS's status page referred to the acquisition again in a January 2025 post-mortem about a domain-transfer outage.Is ButterCMS hosting managed only, or can it be self-hosted?
It cannot be self-hosted; it is a managed SaaS with no public source for the CMS. The vendor says the application runs on Heroku and AWS, the content API is served through Fastly, and media is delivered through Amazon CloudFront, with daily backups to S3. A Heroku add-on can provision an account.What do independent ButterCMS reviews say?
Too little to lean on. Capterra shows three reviews, the newest from 2023, and G2 would not load for us. Most Reddit mentions come from vendor accounts; the independent ones range from a Rails team calling it a delight to a 2026 comment calling it slow and unreliable. The status page history is firmer evidence.Does ButterCMS say anything about serving readers in China?
Nothing we could find. Its documentation index names no China region or delivery arrangement, and its infrastructure page describes Heroku and AWS hosting with Fastly and CloudFront at the edge. Whether that performs acceptably for readers inside China is something to measure from there before committing.Can ButterCMS drafts leak through the read token?
Anyone holding the read token can request drafts. The docs describe that token as safe for client-side code and, elsewhere, instruct you to add preview=1 to it to fetch draft content; no separate preview token is documented. If unpublished pages are sensitive, call the API from a server.What happens when a ButterCMS account reaches its API call limit?
Free and trial accounts are blocked with HTTP 429 until the monthly reset, sometimes with a Retry-After header. Paid plans are not blocked for overages, and the pricing page promises an alert as you approach a limit. Watch trailing slashes, since a missing one triggers a redirect that counts as a second call.
This is an independent review. We have no affiliate relationship with ButterCMS, earn nothing if you sign up, and no vendor pays for placement in the directory. Prices were read from the vendor's own pages in September 2026 and change without notice.