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

Try Total CMS free for 45 days

No credit card required. Full Pro features, running on your own server.

Start your free trial See pricing

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:

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.