Word & Press · 24 publishing platforms profiled Updated 10 October 2026

CMS profile

Grav for publishers: a free flat-file CMS built on Markdown

Grav is an MIT-licensed flat-file PHP CMS using Markdown and Twig, with no database. What it offers publishers for content, languages and SEO.

By Word & Press Published 10 October 2026 Facts verified 10 October 2026 Evidence vendor docs Read 5 min

The short answer

Grav suits small publications and documentation-style sites that want free, MIT-licensed software, Markdown content in plain files and no database. Multi-language support is built in and the plugin catalogue covers the usual gaps. It lacks the editorial workflow and permissions depth that a larger newsroom expects.

GRAV 2.2.6

What is Grav?

Grav is an open-source flat-file CMS. Its repository describes it as powered by PHP, Markdown, Twig and Symfony. Content is Markdown with YAML front matter, held in folders; there is no database. It is MIT-licensed, which our licensing guide explains in plain terms.

There are two live release lines. The latest release marked on GitHub on 2026-10-10 was 2.2.6, and the 1.7 series also had a release on 5 October. The documentation site marks 2.x as the current stable version and 1.7 as legacy.

Fact Detail
Licence MIT
Latest version 2.2.6 (GitHub releases, checked 2026-10-10)
Written in PHP (Symfony components, Twig templates)
Database None (plain files)
Hosting Self-hosted on Apache, Nginx, LiteSpeed, IIS or similar
Price Free; premium plugins and themes sold separately
Made by The Grav project (getgrav.org)

Who is Grav best for?

Grav suits small publications, blogs, documentation sites and developers who want a free system with content in version-controlled files. Folder-based pages are easy to understand, and the absence of a database keeps hosting simple.

It is a weaker fit for a multi-author news desk that needs structured approval, granular permissions and audit trails, or for teams with no PHP skills. Compare with the other profiles in the CMS directory.

Imagine a community newspaper run by a few volunteers, or an industry body publishing a news section next to its documentation. Folder-based pages mean a developer can keep the whole site in Git, and a writer comfortable with Markdown can edit a file directly. The same structure becomes awkward when hundreds of articles need taxonomy-driven archives, author pages and scheduled packages, because those are template and plugin work.

Decide up front whether you are on 1.7 or 2.x: documentation, PHP requirements and plugin compatibility differ.

Editorial workflow

Each Grav page is a Markdown file in its own folder under /user/pages, with YAML front matter for settings. Numeric prefixes on folder names control order. Editors can work in the optional Admin plugin or edit files directly.

Timed publishing is built into page headers: a page is published by default unless published is set to false, its publish_date is in the future or its unpublish_date has passed.

The Admin plugin, in the 1.7 documentation, offers user login and an access control list for admin users. getgrav.org describes an Admin 2.0 single-page app and a first-party REST API with permission-based access. We did not find drafts, revisions or multi-step review described in the pages we opened, so a team that needs them should check the current Admin documentation or plan for plugins.

SEO, structured data and feeds

Page headers include a metadata section for meta tags such as robots, description, keywords and author, and for social tags. The documentation notes the Grav Sitemap plugin uses page headers to set crawl frequency and priority, which indicates sitemaps come from a plugin rather than core.

The plugin directory includes feed plugins, an IndexNow plugin, an Aura plugin that adds meta tags and structured data, and a premium Seo Magic plugin. We have not tested any of them. Check each plugin’s licence, price and maintenance before building on it, and follow Google’s documentation for structured data.

Media, multilingual and performance

Grav’s multi-language system, as described in the 1.7 documentation, uses language-named Markdown files such as default.en.md, with fallback to default.md. Languages are declared in system.yaml, and URLs can carry a prefix such as /en/ or /fr/. getgrav.org lists multi-language capability for 2.x; check the 2.x documentation for any differences.

Performance claims on getgrav.org are the vendor’s own, and we did not verify them. The pages we opened did not describe image handling or CDN use.

Hosting and requirements

Grav 2 requires PHP 8.3.11 or higher, according to its requirements page, plus the curl, ctype, dom, gd, json, libxml, mbstring, openssl, session, simplexml and zip extensions. No database is needed. The 1.7 documentation lists Apache, Nginx, LiteSpeed, IIS and other web servers.

Because content is files, backups and deployments are file operations, which many teams find easier than database exports. Concurrent editing and large article archives are less well covered in the sources we read. The self-hosted guide covers the operational side.

Extending Grav

The plugin directory lists 521 plugins as of 2026-10-10, spanning admin, content, developer, forms, media, security and social categories. Premium items are labelled, such as Seo Magic. The directory says it supports Grav 1.7 and Grav 2, but individual compatibility varies, so check each one.

The Admin is itself a plugin, in the documentation we read, and getgrav.org describes a first-party REST API for 2.x. For a decoupled site, see our headless section.

What does Grav cost?

The software is free under the MIT licence, and getgrav.org says the core CMS is free with premium plugins and themes sold separately. We did not record any premium prices. Hosting is ordinary PHP hosting, since no database is needed, and the main cost is developer time for templates and plugin choices. See our cost guide.

Free software still has a bill. For a small publication it is a PHP host, someone to choose and maintain plugins, and any premium plugin or theme you decide to buy. Because the 1.7 and 2.x lines differ, budget a little time for checking that each plugin you want supports the version you install.

Where does Grav fall short?

  • Light editorial controls. The sources we read describe an access list for admin users and timed publishing, not review workflow or revision history.
  • Two release lines. Documentation, PHP requirements and plugin compatibility differ between 1.7 and 2.x.
  • Plugin dependence. Sitemaps, feeds and richer SEO come from plugins of varying provenance.
  • File-based scale limits. We did not verify behaviour with very large archives, which is a question to test for a news site.
  • Developer-oriented. Themes and page structure expect someone comfortable with Twig and YAML.

The verdict for publishers

Grav is an attractive free option for a small publication whose editors are comfortable with Markdown or where a developer manages the site. The licence is permissive, hosting is simple and multi-language support is there from the start.

For a staffed newsroom that needs approval flows, granular roles and a large archive, other systems in the directory are better matched. This profile is based on documentation, not a test install; see how we test.

Questions people ask

Is Grav free to use?

Yes. The repository states the MIT licence and getgrav.org says the core CMS is free, with premium plugins and themes sold separately. You still pay for hosting and any development.

Does Grav need a database?

No. The requirements page says Grav is built with plain text files, so no database is needed. Content is Markdown files with YAML front matter in folders under /user/pages.

Which PHP version does Grav need?

Grav 2 requires PHP 8.3.11 or higher according to its requirements page. The older 1.7 documentation lists a much lower minimum, so check which major version you are installing. Both lines are still receiving releases.

Can Grav publish articles on a schedule?

Page headers support publish_date and unpublish_date: a page is treated as unpublished if the publish date is in the future or the unpublish date has passed. That gives basic timed publishing without a plugin.

Does Grav have an admin interface for editors?

Yes, through the Admin plugin, which is optional. The 1.7 documentation lists user login and an access control list for admin users, and getgrav.org describes an Admin 2.0 single-page app. Editorial workflow features beyond that are not described in the pages we read.

Sources

  1. The Grav repository states the licence as MIT, and its LICENSE.txt is the MIT License. — source, checked 10 October 2026.
  2. The Grav repository describes Grav as a flat-file CMS powered by PHP, Markdown, Twig and Symfony. — source, checked 10 October 2026.
  3. The latest release marked on GitHub is Grav 2.2.6, published on 10 October; the 1.7 series is also maintained, with 1.7.53.5 released on 5 October. — source, checked 10 October 2026.
  4. The getgrav.org site describes Grav as a flat-file, API-first CMS built on PHP 8.3+, Symfony 7 and Twig 3, with no database requirement, native Markdown and YAML support, multi-language capabilities, an Admin 2.0 single-page app and a first-party REST API with permission-based access control; the core CMS is free and premium plugins and themes are sold separately. — source, checked 10 October 2026.
  5. The Grav documentation marks version 2.x as the current stable documentation and 1.7 as legacy. — source, checked 10 October 2026.
  6. Grav 2's requirements page says PHP 8.3.11 or higher is needed, that Grav is built with plain text files so no database is needed, and lists curl, ctype, dom, gd, json, libxml, mbstring, openssl, session, simplexml and zip as required PHP extensions. — source, checked 10 October 2026.
  7. The Grav 1.7 requirements page lists Apache, Nginx, LiteSpeed, Lightly, IIS and others as supported web servers. — source, checked 10 October 2026.
  8. In Grav, content pages live in the /user/pages folder, each page in its own folder, as a Markdown file with YAML front matter; numeric folder prefixes control ordering. — source, checked 10 October 2026.
  9. A Grav page is published by default unless published is set to false, publish_date is in the future or unpublish_date is in the past. — source, checked 10 October 2026.
  10. Grav page headers support a metadata section for meta tags such as robots, description, keywords, author and social tags, and the Grav Sitemap plugin uses page headers to set crawl frequency and priority. — source, checked 10 October 2026.
  11. In the Grav 1.7 documentation the Administration Panel is a plugin that provides a web interface to configure Grav and create and modify pages, with user login and an ACL for admin users, and it is described as a totally optional plugin. — source, checked 10 October 2026.
  12. In the Grav 1.7 documentation multi-language works through language-named Markdown files such as default.en.md with fallback to default.md, languages declared in system.yaml, and optional URL prefixes such as /en/ and /fr/. — source, checked 10 October 2026.
  13. The Grav plugin directory lists 521 plugins and includes feed plugins, an IndexNow plugin, an Aura plugin that adds meta tags and structured data, and a premium Seo Magic plugin. — source, checked 10 October 2026.