Yes, plenty of CMSs are free, but "free" covers three different deals. Open-source CMSs such as WordPress, Ghost, Strapi and Payload cost nothing to download and a fair amount to run. Hosted free tiers (Sanity, Storyblok, Hygraph, Contentful) cost nothing to start and hit a hard ceiling on seats, locales, entries or API calls. Git-based editors (Decap, TinaCMS, Keystatic) are free because your content lives in a repo and your site sits on a free static host. Pick by what you'd rather pay with: ops time, a future upgrade, or a smaller feature set.
I'll go through each of those three in turn, with licenses and limits taken from the vendors' own pages as they read on 2026-10-20. I'll also say where a "free" label comes with conditions, because a few of them do.
What does "free CMS" mean to a developer?
When a non-technical person asks for a free CMS they usually mean "no invoice." A developer has to ask a few more questions: can I read the source, can I run it where I like, who pays when traffic grows, and what happens on the day I need a feature the free version doesn't have?
That gives you three buckets.
- Free as in license: the code is open source, you host it, and the bill is whatever your servers, database, backups and your own hours cost.
- Free as in tier: someone else hosts it, you get a capped plan at $0, and a limit you'll eventually hit decides when you pay.
- Free as in architecture: content is plain files in git, the editor is a thin layer on top, and the site deploys to a static host with a free plan.
Most of the confusion online comes from mixing these. A "free" SaaS tier is not open source. An open-source CMS is not free to operate. A git-based CMS is nearly free, but the complexity moves into your build pipeline and your editors' login flow.
Which license are you actually agreeing to?
Before cost, check the license, because it decides what you're allowed to do with the thing once it's running.
MIT (and Apache-2.0) are permissive. You can use, modify and ship the code in a commercial product, keep your changes private, and the only real obligation is to keep the copyright notice. GPL is a copyleft license: if you distribute a derivative, it has to stay GPL. WordPress sits here. Its license page says it's released under GPLv2 or later and that the project's position is that plugins and themes are derivative works that inherit the GPL, while admitting there's "some legal grey area" around what counts as a derivative. For a site owner that rarely matters. For someone building and selling a commercial theme or plugin it matters a lot.
AGPL goes one step further. Section 13 of the AGPL says that if you modify the program and let users interact with it over a network, you must offer those users the corresponding source. That's the clause people mean when they say "AGPL is a problem for SaaS."
Then there's the newer middle ground: source-available. The code is public and you can run it, but the license restricts something. Two shapes show up in this article. Strapi uses an open-core split, where the community code is MIT and files under ee/ directories fall under a separate enterprise license. Directus uses a source-available license with a revenue-based free grant. Both are fine choices. Neither is "just MIT," and your legal team (or you, the night before a client launch) should know which side of the line you're on.
Which open-source CMSs are free to self-host?
Here's the per-product view for the self-hosted bucket. A shared caveat first: none of these has a price tag for the software, and every one of them has a bill for the machinery.
WordPress.org
WordPress is GPLv2-or-later and by far the most familiar option. Its stated requirements are PHP 8.3 or greater, MariaDB 10.11+ or MySQL 8.0+, and HTTPS. Because shared and managed WordPress hosting is a mature market, it's the one open-source CMS where "free" can realistically end at a cheap host and a domain.
The weakness is the same thing as the strength. The plugin ecosystem does the heavy lifting, so each site carries a stack of third-party code that needs updates and a security eye. If you treat WordPress as a blank slate for a custom data model, you'll be fighting it. If you treat it as a publishing tool with extensions, it behaves.
Ghost (self-hosted)
Ghost is MIT-licensed and built for publications and newsletters. The Ubuntu install guide lists what a production box needs: Ubuntu 22.04, 24.04 or 26.04, at least 1 GB of memory, MySQL 8.0 or 8.4, NGINX, a supported Node.js version, a domain with a DNS A record, and systemd to keep it running. That's a short list, and Ghost's CLI automates most of it.
The catch is scope. Ghost does publishing and memberships very well and very little else, so a site that needs a custom content model, a shop, or complex page layouts will outgrow it. There's also an honest nudge on the other side: Ghost's own README presents the paid managed service, Ghost(Pro), as the easiest route, and says its revenue funds the Ghost Foundation. At the time of writing the pricing page shows Ghost(Pro) starting at $18/mo billed yearly. Self-hosting is the free route, with you carrying the uptime.
Strapi
Strapi is a headless CMS on Node. Its self-hosted pricing page says the Community edition is free forever under the MIT license, with unlimited usage, role-based access control, and REST and GraphQL APIs. The GitHub README lists SQLite, PostgreSQL, MySQL and MariaDB as database options.
Read the LICENSE file, though. Code under ee/ directories is licensed separately from MIT, and the MIT grant is written for the Community Edition when you have no registered account on Strapi's cloud offering. Most people will never trip over that. The practical consequence is the feature line: per the same pricing page, Review Workflows and Audit Logs are Enterprise only, SSO is a paid add-on on the Growth plan (\(45/month with three users, extra users \)15/month each), and Community has none of them. If you need an approval flow or SSO on day one, "free Strapi" isn't quite the product you'll be running.
Payload
Payload is MIT-licensed (the LICENSE is a plain MIT notice) and describes itself as a Next.js-native CMS that installs directly in your existing /app folder. Its database docs list official adapters for MongoDB, Postgres and SQLite.
For a TypeScript team already on Next.js this is the lowest-friction "own the code" option in the list, because the CMS and the site are one deployable. The flip side is that the same coupling makes you the platform team. Upgrades, migrations and hosting are yours (I haven't looked at a hosted option for it here). One detail worth catching: the README says you can deploy "on Vercel for free," but Vercel's Hobby plan is restricted to non-commercial, personal use. For a client site you'll be on a paid host regardless.
Directus
Directus wraps an SQL database with a REST and GraphQL API and an admin studio. It is the one entry here where "open source" needs an asterisk. The license is the Monospace Sustainable Core License 1.0, which its own README calls source-available and derived from the Fair Core License. In plain terms, you may use, modify and redistribute it for any purpose except a "Competing Use" (making the software available, alone or bundled with your own products, in a way that competes with the licensor's own commercial offerings of it), you can't bypass the license-key mechanism, and the software picks up an additional GPL-3.0 grant on the fourth anniversary of the date it is made available.
On cost, the README says organizations under \(5M in annual revenue and 50 employees can use it free under the Open Innovation Grant, and the pricing page lists a \)0 Core tier with 3 seats (a hard limit), 25 collections and no SSO. Self-hosting is available on every tier. So for a small team it's effectively free, and for a larger company the question becomes a commercial-license conversation. Directus runs as a Docker image, and the self-hosting docs say you supply the production pieces yourself: database, caching and backups.
What does a free open-source CMS really cost to run?
The software is $0. Everything around it isn't, and it helps to list the line items instead of waving at "hosting."
- Compute: an always-on server or container. Ghost's guide says at least 1 GB of memory; the rest vary with traffic and plugins.
- Database: MySQL, MariaDB or Postgres, either on the same box or as a separate managed service.
- Backups: a schedule, an off-box destination, and a restore you've actually tested. This is the line people skip until it hurts.
- TLS, DNS and email: certificates, records, and a transactional email provider for password resets and newsletters.
- Upgrades: core, plugins or extensions, Node or PHP versions. WordPress, for one, currently recommends PHP 8.3 or greater, so an older host image is a project of its own.
- Security: patch watching, admin hardening, the occasional bad night.
- Your hours: the line that never appears on an invoice and usually dominates.
I'm deliberately not quoting a monthly total. Hosting prices swing with provider and region, and I'd be inventing a number. The shape is what matters: a hobby blog can run on a tiny box after a weekend of setup, while a client site that must stay up needs proper backups and monitoring, and that work costs something whether you bill for it or not. If you run the site for someone else, the question isn't "is it free?" It's "who's on call?"
What do the free tiers of hosted CMSs actually limit?
This is the SaaS bucket. You don't run anything; the vendor does, and the limits are the product. Every number below is from the vendor's own pricing or usage-limits page, read 2026-10-20.
Sanity
Sanity is generous with seats on its free tier. Free includes up to 20 user seats, 2 public datasets, 1 million API CDN requests a month, 250,000 API requests, 100 GB of bandwidth, 100 GB of assets and unlimited locales (within a cap of 2,000 unique attributes per dataset). The Studio (the editing UI) is open source and you code your content model in JavaScript, which developers tend to like.
What triggers the first paid plan: private datasets, comments, or going past a quota. Growth is $15 per seat per month, with overages priced per request and per GB. The trade-off is that your content lives in Sanity's hosted Content Lake. The editing UI is yours; the data store isn't something you self-host.
Storyblok
Storyblok's free Starter plan needs no credit card and gives you one seat (a second is $15/month, and two is the maximum), 20,000 stories, 100 GB of traffic a month, 2,000 assets, 2 locales and 100,000 API requests a month, in a single space. It's the visual-editor option: marketers see the page as they edit.
The limits are firm. The page says no additional traffic, locales or requests can be bought on Starter, so growth means moving to Growth, which is \(99/month billed monthly or \)90.75/month billed annually. That's a real jump from $0, so Storyblok suits a project that knows it will be funded.
Hygraph
Hygraph is GraphQL-native. Its Hobby plan, which Hygraph pitches at personal projects and idea validation, is "always" $0 with 3 seats, 2 locales, 2 standard roles, 1,000 entries, 500,000 API calls and 100 GB of asset traffic. Two details bite. Assets count against the entry limit, so a media-heavy site burns through 1,000 faster than you'd think. And per Hygraph's FAQ, if you hit a Hobby usage limit, usage is blocked until the next billing period rather than billed as overage.
Growth is $199/month, with 10 seats, 3 locales and 10,000 entries. Hygraph is the clearest example here of a free tier built for a prototype, not a production multilingual site.
Contentful
Contentful is a hosted, API-first CMS with a Free plan. Its usage-limits help page sets the Free plan at 100,000 API calls (CMA, CPA and CDA combined) and 50 GB of asset bandwidth a month, and says additional API calls and bandwidth are not allowed on Free, so there is no overage to pay and also no headroom. The same page says the Free plan may only be used to test and learn about the product, not to support commercial use cases.
So the strength is a hard cap that can't surprise you with a bill, and the weakness is that it's a learning plan rather than somewhere to host a client's production site. I'm leaving out user, locale and record limits because the sources I could see disagreed. Open the pricing page and read those yourself before you build on it.
TinaCloud (a hybrid)
TinaCMS straddles the SaaS and git-based buckets. The pricing page lists a Free plan at $0 with no time limit and 2 users, then Team at $24 per project per month (or $290 a year). It's here because for a small solo project the free plan is real, and because it leads into the third bucket.
Is a git-based CMS the cheapest way to go?
Often, yes. Here the content is Markdown, JSON or YAML in your repo, the "CMS" is an editing interface that commits to it, and the site is static. No database, no API quota, nothing metered.
Decap CMS
Decap CMS (formerly Netlify CMS) is MIT-licensed. It's a React app you add to your site that edits content through the GitHub, GitLab, Bitbucket, Azure, Gitea or Git Gateway backends. It works with most static site generators, with or without Netlify.
The catch is authentication. Per its backends docs, GitHub and Bitbucket logins default to a hosted OAuth endpoint at api.netlify.com, and the project documents a self-hosted OAuth proxy (with a Cloudflare Worker template) for people who'd rather not depend on that. So the CMS is free, but "who handles the login" is a decision you make once. The editing experience is also more utilitarian than a SaaS visual editor.
TinaCMS
TinaCMS is Apache-2.0 and adds visual, in-context editing on top of files in git. You can use TinaCloud, or self-host the backend, which needs an auth provider (an Auth.js setup is included), a database adapter that acts as an index (your files stay the source of truth) and a git provider. The docs warn that some features aren't available when self-hosting. It gives editors the closest thing to a visual experience in this bucket, at the price of the most moving parts.
Keystatic
Keystatic (MIT on GitHub) makes Markdown, JSON and YAML in your codebase editable, using your local file system or GitHub, and supports Next.js, Astro and Remix. A Keystatic Cloud service exists to simplify GitHub authentication and optimize images; I couldn't find its pricing on the pages I could load, so I'm leaving that out. For a developer-owned site with one or two editors, it's about as light as this category gets.
Where do you host the static site for free?
This is what makes the git-based path "free." Cloudflare Pages lists 500 builds a month on the Free plan, 20,000 files per site and a 25 MiB limit per asset. GitHub Pages caps published sites at 1 GB, has a soft 100 GB monthly bandwidth limit, and states it isn't intended to be a free host for running an online business. And as noted, Vercel's Hobby plan is non-commercial. So free hosting is genuinely free for a personal or documentation site, and has to be checked line by line for a business one.
When does paying beat free?
At some point the free route costs more than the paid one. If the "free" CMS needs someone to keep it patched, backed up and monitored, and that person's time is billed or scarce, a flat monthly fee for a managed product can be cheaper. If you outgrow a free tier's seat or locale cap, you'll pay anyway, often in a bigger step than a flat plan would have cost from the start. And if your editors aren't developers, a git-based login flow is a cost too.
VeloCMS
VeloCMS is a managed blog and site platform, and I'll be direct that it doesn't answer your question. It has no free plan. Per its pricing page, every plan starts with a 14-day free trial (you add a card at the start and are charged on day 15 unless you cancel), then Pro is \(9/month, Business \)29/month and Agency $69/month on monthly billing. Nothing in that is free forever.
It's also not open source, and customers can't self-host it today. If your reason for asking "is there a free CMS?" includes owning the code, running it on your own infrastructure or being able to fork it, VeloCMS is simply the wrong tool, and I'd point you to the open-source section above. What you'd be paying for is that someone else runs it: hosting, backups, upgrades and the editing and publishing tools in one login. That's a fair trade for a person who wants to write rather than operate a server, and a poor one for a developer who wants to own the stack.
Which free CMS fits which job?
Here's the decision path, by use case. It isn't a ranking.
- A personal blog or a newsletter you want to run yourself: Ghost, if you're willing to run MySQL and Nginx, or WordPress if you want the biggest plugin pool and the widest hosting market.
- A client brochure site with an editor who isn't technical, and you want the cheapest hosting: a static site with Decap or Tina's free plan, on a host whose terms allow commercial use.
- A TypeScript product with a real content model and your own auth: Payload if you're on Next.js, Strapi or Directus if you want a standalone API server.
- A prototype or an internal tool with a small team: Sanity's free tier (20 seats) or Hygraph's Hobby plan, as long as you accept the ceiling.
- A marketing site where editors need to see the page as they edit: Storyblok Starter, knowing the next step is $99/month.
- Anything where you can't take the operations on, and you don't need the code: a paid managed platform, which is the only reason VeloCMS appears in this article.
Who is each option best for?
- WordPress: best for people who want mature hosting options and a plugin for nearly everything, and who accept the update routine.
- Ghost: best for publishers and newsletter writers who want a focused product they can self-host.
- Strapi: best for teams who want a standalone Node content API and are fine reading the
ee/boundary. - Payload: best for TypeScript and Next.js developers who want the CMS in their own codebase.
- Directus: best for teams with an existing SQL database who qualify for the free grant or will buy a commercial license.
- Decap CMS: best for static sites with technical owners who can settle the OAuth question once.
- TinaCMS: best for static sites where editors want in-page editing and you can accept more moving parts.
- Keystatic: best for small, developer-owned sites in Next.js, Astro or Remix.
- Sanity: best for developer-led projects that want a code-defined schema and generous seats on a free tier.
- Storyblok: best for visual-editing needs where a funded upgrade is already expected.
- Hygraph: best for GraphQL-first prototypes that won't outgrow 1,000 entries.
- Contentful: best for learning a hosted, API-first CMS under a hard-capped Free plan, with a paid plan needed once the work turns commercial.
- VeloCMS: best for a writer or small team who'd rather pay $9 to $29 a month than operate anything, and who don't need the source. Not for anyone who needs open source or self-hosting.
When is VeloCMS the wrong choice?
For this particular question, in several cases. If you need a CMS at no cost, it isn't one, since it has only a trial. If you need to self-host, audit the code or fork it, it doesn't allow that. If you're building a custom data model across many content types for an app, a headless CMS like Payload or Directus is a better fit than a managed site platform. And if you're locked into WordPress's plugin ecosystem for a specific need, you'd be rebuilding that need rather than carrying it over.
FAQ
Is WordPress really free?
The software is: WordPress.org distributes it under GPLv2 or later. Running it isn't, because you need hosting that meets its requirements (PHP 8.3+, MariaDB 10.11+ or MySQL 8.0+, HTTPS), plus a domain and your maintenance time.
Can I use an open-source CMS for a commercial site?
Usually, yes. MIT, Apache-2.0 and GPL all allow commercial use. Check the exceptions: Strapi's ee/ code is licensed separately, and Directus's license restricts "Competing Use" and ties free use above a size to a commercial license.
Are headless CMS free tiers safe for production?
Some can be, within the limits. Hygraph's Hobby plan blocks usage until the next billing period when you hit a limit, and Storyblok's Starter says no extra traffic or requests can be purchased. Treat a free tier as production-safe only if you're comfortable being cut off at the cap.
What's the cheapest way to run a CMS?
A git-based CMS on a free static host, such as Decap CMS on Cloudflare Pages, has no database or API quota to pay for. Check the host's commercial-use terms first: GitHub Pages isn't intended for running an online business, and Vercel's Hobby plan is non-commercial.
Is Directus open source?
It's source-available. The Monospace Sustainable Core License 1.0 allows use for any purpose except a Competing Use and gains an additional GPL-3.0 grant on the fourth anniversary of the date it is made available. Organizations under $5M revenue and 50 employees can use it free under the Open Innovation Grant.
Does VeloCMS have a free plan?
No. It offers a 14-day free trial on every plan, and paid plans start at $9/month on the pricing page checked 2026-10-20. It isn't open source or self-hostable.
What triggers the first paid plan on a free tier?
Usually seats, locales, entries or API calls. On Sanity's free plan the triggers are private datasets and quotas; on Storyblok Starter it's a second seat ($15/month), or any need for more than two locales or more traffic; on Hygraph Hobby it's the 1,000-entry and 2-locale ceilings.
Last verified: 2026-10-20. Prices, limits and licenses change, so check the linked vendor pages before you commit.
Sources
All pages accessed 2026-10-20.
- WordPress license: https://wordpress.org/about/license/
- WordPress requirements: https://wordpress.org/about/requirements/
- Ghost repository (license, README): https://github.com/TryGhost/Ghost
- Ghost Ubuntu install requirements: https://docs.ghost.org/install/ubuntu
- Ghost pricing: https://ghost.org/pricing/
- Strapi self-hosted pricing: https://strapi.io/pricing-self-hosted
- Strapi repository: https://github.com/strapi/strapi
- Strapi LICENSE: https://github.com/strapi/strapi/blob/main/LICENSE
- Payload repository: https://github.com/payloadcms/payload
- Payload LICENSE: https://github.com/payloadcms/payload/blob/main/LICENSE.md
- Payload database docs: https://payloadcms.com/docs/database/overview
- Directus repository (README, license section): https://github.com/directus/directus
- Directus license (MSCL 1.0): https://directus.com/license
- Directus pricing: https://directus.com/pricing
- Directus self-hosting docs: https://directus.com/docs/self-hosting/overview.html
- Decap CMS intro: https://decapcms.org/docs/intro/
- Decap CMS backends: https://decapcms.org/docs/backends-overview/
- TinaCMS pricing: https://tina.io/pricing
- TinaCMS self-hosting docs: https://tina.io/docs/self-hosted/overview/
- TinaCMS repository: https://github.com/tinacms/tinacms
- Keystatic: https://keystatic.com/
- Keystatic repository: https://github.com/Thinkmill/keystatic
- Sanity pricing: https://www.sanity.io/pricing
- Sanity Studio docs: https://www.sanity.io/docs/studio
- Contentful pricing: https://www.contentful.com/pricing/
- Contentful usage limits: https://www.contentful.com/help/admin/usage/usage-limit/
- Sanity Content Lake docs: https://www.sanity.io/docs/content-lake
- Storyblok pricing: https://www.storyblok.com/pricing
- Hygraph pricing: https://hygraph.com/pricing
- Cloudflare Pages limits: https://developers.cloudflare.com/pages/platform/limits/
- GitHub Pages limits: https://docs.github.com/en/pages/getting-started-with-github-pages/github-pages-limits
- Vercel Hobby plan: https://vercel.com/docs/plans/hobby
- GNU AGPL v3: https://www.gnu.org/licenses/agpl-3.0.html
- VeloCMS pricing: https://velocms.org/pricing
Comments
Join the discussionNo comments yet. Be the first to comment.