I have had the opportunity for the past few months to watch and evaluate a new CMS system, database-free called GRAV. What a pleasure it is to code and use! Grav is not your average CMS!
WordPress, Joomla and Drupal are powerful, well-established CMSs, but their complexity and steep learning curve can be overkill and completely unneeded for people wishing to build small or middle-range sites, such as personal blogs, portfolios, photo galleries or business agencies.
Grav is a modern, flat-file CMS, developed by Andy Miller (from Rocket themes). It uses modern PHP and the latest standards like Markdown, Twig, YAML, Doctrine Cache, etc. Flat-file CMS means that there’s no database involved, and instead, all the site’s content and configuration settings are stored in plain text files.
There are many flat-file CMS platforms out there, but none really provides the complete package of speed, ease of use, and flexibility that we think is needed for solving modern web design problems.
Grav uses markdown files for content, YAML-based configuration, and Twig for rendering that content as HTML. While Grav doesn't have a traditional database running on MySQL or similar, it does have a type of database which is stored in folders and plain text files. These files store content with the Markdown syntax with configuration stored in YAML.
Even though Grav doesn’t use a database, it still gives you a way to manipulate your content dynamically — almost like a database-driven CMS such as WordPress, Joomla or Drupal.
From simple to sophisticated, Grav has the flexibility to power all sorts of websites. Flexible content structure and powerful Twig templating allow the easy realisation of any design.
The core technologies Grav uses are:
- Twig Templating – for powerful control of the user interface
- Symfony YAML – for simple configuration
- Parsedown – for fast Markdown and Markdown Extra support
- Doctrine Cache – layer for performance
- Pimple Dependency Injection Container – for extensibility and maintainability
- Symfony Event Dispatcher – for plugin event handling
- Symfony Console – for CLI interface
- Gregwar Image Library – for dynamic image manipulation
- Monolog – for powerful logging capabilities