A tiny flat-file CMS in PHP that stores content in a JSON file, with no database and a one-step install by uploading its files.
getgrav/grav
A flat-file CMS written in PHP that stores pages as Markdown files, with no database required.
Open-source alternative to:WordPress
- Stars
- 15,718
- Forks
- 1,432
- Open issues
- 415
- Last commit
- yesterday
What is it?
Grav is a content management system that keeps pages as plain Markdown files and configuration as YAML, so a site can run without a database. Installation is a matter of extracting an archive or running a Composer command, after which the site is ready to use.
Pages are rendered with Twig templates, and Markdown is parsed with Parsedown, including Markdown Extra support. The core is built on Symfony components for caching, events, and the command-line interface, and it uses a dependency injection container to support extensions.
Grav includes a Package Manager (GPM) for installing, updating, and removing plugins and themes, and for upgrading the core itself. Developers can run unit tests and PHPStan checks on the codebase.
Key features
- 01Stores content as Markdown files and configuration as YAML, with no database needed.
- 02Renders pages with Twig templates.
- 03Includes the GPM package manager for installing and updating plugins, themes, and the core.
- 04Provides a command-line interface (bin/grav) for setup and maintenance.
- 05Built on Symfony components with an event system for plugins.
Use cases
- Building a small or medium website that does not need a database.
- Publishing a blog or documentation site written in Markdown.
- Hosting a site on basic PHP web hosting with Apache or IIS.
Quick start
- 1
Install Grav with Composer
composer create-project getgrav/grav ~/webroot/grav - 2
Or clone the repository from GitHub
git clone https://github.com/getgrav/grav.git - 3
Install plugin and theme dependencies with the Grav CLI
bin/grav install
Things to know
- Requires PHP 8.3 or higher with Apache or IIS web server setup.
In collections
Topics
FAQ
- What is grav?
- A flat-file CMS written in PHP that stores pages as Markdown files, with no database required. Grav is a content management system that keeps pages as plain Markdown files and configuration as YAML, so a site can run without a database. Installation is a matter of extracting an archive or running a Composer command, after which the site is ready to use.
- Is grav free to use? What license does it have?
- grav is open source under the MIT license. Check the license terms before using it in commercial products.
- Is grav still maintained?
- Actively maintained. The last commit to grav was on Nov 6, 2026.
- What can I use grav for?
- Building a small or medium website that does not need a database. Publishing a blog or documentation site written in Markdown. Hosting a site on basic PHP web hosting with Apache or IIS.
- How do I install grav?
- Install Grav with Composer: composer create-project getgrav/grav ~/webroot/grav Or clone the repository from GitHub: git clone https://github.com/getgrav/grav.git Install plugin and theme dependencies with the Grav CLI: bin/grav install
- Where can I get grav?
- The source code and installation instructions are on GitHub: https://github.com/getgrav/grav
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted PHP content management system for building custom websites and digital experiences, with a Twig templating layer and auto-generated GraphQL API.
Halo is an open-source website builder for personal blogs, knowledge bases, corporate sites and online stores.
Joomla! is a free, open-source PHP content management system for building websites and online applications.
A flat-file CMS for building websites and blogs that stores content as JSON, so no database is needed.
Open-source e-commerce framework and CMS for building online stores, built on Symfony 7 and API Platform.