Comparison
Total CMS vs Grav
Grav is free, fast, MIT licensed and genuinely well built. If budget decides this, go and use it — you will not be cutting corners. What is left to compare is not capability but how much you want to assemble yourself.
Grav details last verified
The short answer: these two are closer than you would guess. Both store content as files with no database. Both template in Twig, so the skill transfers in either direction. Both ship a REST API, a first-party MCP server for AI agents, and agent skills. Both handle scheduling and webhooks without reaching for a plugin. If you were listing capabilities, you would struggle to separate them.
What Grav has that we do not is a price of zero and an MIT licence. Nothing you need to run a production Grav site is paywalled, you can fork it, and its plugin directory has had more than a decade to grow. Its caching is a genuine strength — five layers with Redis, Memcached and APCu drivers — and its free skeletons are complete ready-to-run sites.
What actually separates them is how much is in the box. In Grav the admin is a plugin, the REST API is a plugin that ships disabled, the MCP server installs separately from npm, and access groups start empty for you to define in YAML. In Total CMS those are one product on one release cycle, with commercial support attached and sensible defaults already set. Neither approach is wrong — one is a toolkit, the other is a product.
If budget is the binding constraint, or you want MIT-licensed software you can fork, Grav is the answer. It is a genuinely good CMS and you will not be cutting corners by choosing it. Choose Total CMS when you would rather configure than assemble, and want one vendor answerable for the whole thing.
At a glance
Total CMS vs Grav, feature by feature
| Feature | Total CMS | Grav |
|---|---|---|
| Licence Grav's MIT licence permits commercial use, modification, and white-labelling with no fee. Total CMS is proprietary, source-available software requiring a paid licence for production. | Commercial, one-time, per domain | MIT open source |
| Price Grav sells optional premium plugins and themes ($25–$100 each, one-time, per production site), but nothing required to build and run a site costs money. | $79 Lite / $159 Standard / $359 Pro (one-time) | Free |
| Support Grav's forum is active — roughly 3,800 members and 41,000 posts. There is no paid support tier. | Commercial support included | Community forum and Discord |
| Content storage Both version-control cleanly. Grav maps folders to pages and uses numeric folder prefixes to control ordering. | JSON files on disk | Markdown with YAML front matter |
| Database Grav 2.0 adds an optional SQLite-backed page index for large sites, but no database server is required. | None, ever | None |
| PHP version Grav 2.0 is built on Symfony 7 components. | 8.2+ | 8.3+ |
| Templating The rare case where two CMSs share a template language — a Grav theme developer will find Total CMS templates immediately familiar, and vice versa. Grav ships its own Twig fork that tracks upstream. | Twig 3, with 130+ custom filters and functions | Twig 3 |
| Content modeling Flex Objects is Grav's structured-data layer for content that isn't a page — one blueprint yields admin UI, API, and frontend routing, with pluggable storage. | JSON schemas | YAML blueprints, plus Flex Objects |
| Admin interface Grav's admin is optional and installed separately. A ground-up rewrite, Admin2, is in progress and self-labelled Alpha — not a drop-in replacement and not yet installable through their package manager. | Included, server-rendered (HTMX) | A separate plugin |
| Users and permissions Grav's docs are explicit: "By default, Grav does not provide any group. You need to define them." Users are individual YAML files; permissions are dotted and hierarchical. | Access groups out of the box | Define groups yourself in YAML |
| REST API Grav's API is first-party and full-featured — API keys, JWT, per-key expiry and revocation — but it is a plugin that is not enabled by default and requires Grav 2.0+. | Read and write, all editions | Read and write, free plugin |
| MCP server for AI agents Grav genuinely competes here. Their MCP server exposes 67 tools across 11 domains and runs through the same API and permissions as everything else. It is early — version 0.1.0, published July 2026. Total CMS's is built into the application rather than installed alongside it. | Built into the CMS (Pro) | First-party, published to npm |
| Agent skills Both projects ship agent guidance. Grav distributes five Claude Code skills through a plugin marketplace; Total CMS installs a skill and Cursor rules automatically on composer install. | Installed with the package | First-party Claude Code skills |
| llms.txt for docs A small gap and trivially closed — Grav's documentation is otherwise extensive and open source. | Yes | Not currently |
| Scheduled tasks and webhooks Grav 2.0 ships a scheduler and webhooks alongside multi-environment configuration. | Built in (Automations) | Built in (scheduler and webhooks) |
| Caching Caching is a genuine Grav strength — config, page, Twig, image, and asset layers, with an auto-negotiating driver. | Multi-backend (APCu, Redis, Memcached, filesystem) | Five layers, six drivers |
| Extension ecosystem Grav's directory is considerably larger, and its free skeletons are complete ready-to-run site packages. Total CMS's extension API is small enough that an AI coding agent can scaffold one from the starter repo, and each extension's capabilities are individually permissioned. A marketplace is planned. | Growing, with a simple extension API | A large, established plugin and theme directory |
| Who maintains it Grav is commercially backed but development is concentrated: of the 100 most recent commits, 90 are by the project's lead developer. That is a strength for coherence and a consideration for continuity. | Total CMS | Trilby Media, plus contributors |
| Shipping since Grav 2.0 shipped in June 2026 and is being actively patched — thirteen releases in the five weeks that followed. | 2015 | 2014 |
When to choose Grav instead
Grav is a genuinely good CMS and for a lot of projects it is the right answer. Choose Grav if:
- Budget is the binding constraint. Grav is free and MIT licensed. Nothing required to build and run a production site costs anything, and you are not making a compromise to get that.
- You want open source you can fork. MIT means you can modify, redistribute, and white-label without asking anyone. Total CMS is proprietary; if the vendor relationship itself is a risk you want to eliminate, Grav removes it.
- You want agent tooling without a licence. Both products ship a first-party MCP server and agent skills, but Grav's are free like everything else, and their roadmap plainly prioritises agents — their tagline is "A CMS for humans & agents". Total CMS's MCP server is a Pro-tier feature.
- You want a running start. 56 free skeletons are complete site packages — core, theme, plugins, and sample content in one download.
- You want the larger extension catalogue. An established directory of plugins and themes, against a younger one.
- Raw performance is the priority. Five cache layers with Redis, Memcached, and APCu drivers, and a project that treats speed as a headline feature.
When Total CMS fits better
Total CMS is the better fit when:
- You want one supported product rather than an assembly. The admin, permissions, API, automations, and image processing are one thing, from one vendor, on one release cycle. In Grav the admin is a plugin, the API is a plugin that is off by default, and access groups ship empty for you to define in YAML.
- You need someone to call. Total CMS includes commercial support. Grav's support is a community forum and Discord, with no paid tier.
- Client permissions matter on day one. Access groups and roles are configured in the admin rather than hand-written into YAML files.
- You want a settled admin. Grav is mid-transition between its classic admin and a ground-up rewrite that is still self-labelled Alpha; you are choosing between a mature panel and an unfinished one.
- You want the MCP server to be part of the CMS. Total CMS's is built into the application and gated by the same licence and OAuth, rather than a separately installed package at an early version.
- Continuity is a purchasing criterion. Both are small teams, but a commercial licence buys a contractual relationship rather than goodwill.
FAQ
Common questions
Grav is free. Why would I pay for Total CMS?
You are paying for a supported product rather than a toolkit. In Total CMS the admin, permissions, REST API, automations, and image processing ship as one thing on one release cycle, with commercial support attached. In Grav the admin and API are separate plugins, the API is off by default, access groups must be hand-defined in YAML, and support is community-based. If none of that matters to your project, Grav is free and genuinely good — use it.
Do both really use Twig?
Yes, and it is unusual. Both are Twig 3, so templating skills transfer directly in either direction. Grav maintains its own fork that tracks upstream Twig; Total CMS uses upstream Twig and adds 130+ custom filters and functions on top.
Which is better for AI agents?
They are closer than you might expect, and Grav is ahead in places. Grav ships a first-party MCP server with 67 tools, official Claude Code skills, and an API-first admin. Total CMS builds its MCP server into the application rather than installing it alongside, ships an agent skill and Cursor rules with the package, and publishes an llms.txt for its documentation, which Grav currently does not. If first-party agent tooling is your deciding factor, evaluate both properly rather than taking either vendor's word for it.
Is Total CMS open source like Grav?
No. Grav is MIT licensed — free to use, modify, and redistribute. Total CMS is proprietary, source-available commercial software that requires a paid licence for production use. If an open-source licence is a requirement rather than a preference, that settles it in Grav's favour.
Can Grav model structured content, or is it just Markdown pages?
It can. Flex Objects is Grav's structured-data layer for content that is not a page — products, members, bookings. One YAML blueprint produces the admin UI, the API, and frontend routing, with pluggable storage backends. It would be wrong to characterise Grav as Markdown files only.
Can I migrate from Grav to Total CMS?
There is no automated Grav importer. Total CMS ships importers for Total CMS 1, Alloy, WordPress, CSV, JSON, RSS, and URLs. Grav content is Markdown with YAML front matter in predictable folders, so exporting to CSV or JSON and importing that is usually straightforward — and Grav's own REST API makes scripting the export easier than most.
Other comparisons
- Total CMS vs Kirby Kirby is one of the best flat-file CMSs there is, and if its philosophy suits you it is a great choice. The question was never whether Kirby is good — it is whether plain PHP templates and a per-site licence match the way you build. Total CMS answers that differently.
- Total CMS vs Statamic Statamic is excellent, and if your team already lives in Laravel it is probably the natural pick. The real question is whether you want a CMS with a framework attached — because that is the trade, and it cuts both ways.
- Total CMS vs WordPress WordPress runs 41% of the web and it earned that. This is not a page about WordPress being bad — its core is well built and its ecosystem is unmatched. It is about what you sign up to maintain, and whether that trade suits the site you are building.
- Total CMS vs Craft CMS Craft is a genuinely good CMS with a free tier we cannot match. It is also the closest thing to Total CMS on this site — same language, same templating, same kind of structured content modelling. Which leaves one real question: should your content live in a database?
- Total CMS vs Webflow Webflow's designer is the best visual building tool there is, and nothing here replaces it. But two questions are worth asking before you commit a client's site to it: what can you actually take with you, and who is Webflow building for now?
- Total CMS vs Squarespace Squarespace is very good at what it does, and for a lot of people reading this it is the right answer. This page is not an argument that you should leave it. It is about what happens if you ever want to.
Related guides
- Hosted vs self-hosted Before you choose between Squarespace and Webflow, or between Kirby and Craft, there is a bigger question underneath: do you want to rent a website platform or own the software that runs it? Here is how to decide, from someone with an obvious stake in the answer.
- The best flat-file CMS in 2026 Five flat-file content management systems worth your time, what each is genuinely good at, and where each one will frustrate you. Written by the makers of one of them — which is exactly why every entry lists real tradeoffs.
- A PHP CMS without a database Running a CMS with no MySQL sounds like a corner-cutting exercise. It isn't — but it does involve real tradeoffs, and it helps to know them before you commit a client project to one.
- WordPress alternatives for freelancers If you build client sites for a living, the CMS decision is really a decision about the next three years of your evenings. Here are the serious alternatives, judged on the things that actually affect a freelance business.
Try Total CMS free for 45 days
No credit card required. Full Pro features, running on your own server.
Grav details verified on . Software changes — check Grav's own site for their current details.
Sources
Grav details verified from primary sources on 26 July 2026, against Grav 2.0.13:
- getgrav.org — positioning and the "CMS for humans & agents" tagline
- github.com/getgrav/grav — MIT licence, dependencies, release history, contributor activity
- getgrav.org/premium and the premium licence — paid add-on pricing and terms
- learn.getgrav.org — requirements — PHP version, no database
- learn.getgrav.org — content pages — folder-as-page structure
- learn.getgrav.org — Flex Objects
- learn.getgrav.org — groups and permissions
- learn.getgrav.org — performance and caching
- github.com/getgrav/grav-plugin-api — the REST API plugin
- github.com/getgrav/grav-mcp — the first-party MCP server
- github.com/getgrav/grav-skills — official Claude Code skills
- github.com/getgrav/grav-plugin-admin2 — the Admin2 rewrite and its Alpha status
- Grav 2.0 release announcement
Grav is a trademark of its respective owner. We have no affiliation with Grav, and we have tried hard to represent it accurately — including where it is the better choice. If anything here is wrong or out of date, tell us and we will correct it.