We believe in Sharing What You Know

Building a website with Grav CMS - Part 2

Grav Logo We've recently started to crack down on Parlor's online presence. As with many agencies, we can get so wrapped up in solving our clients' problems that we forget about our own. Our brand suffers as a result of the neglect. To remedy this, we decided to use our own discovery processes on ourselves. This allowed us to diagnose and take action to fortify any weak spots in our workflow as well as our brand.

We decided to tackle the Parlor website which has existed as a bare bones splash page for the better part of year. After considering our needs and our development process, we settled on Grav CMS to power the site. We're gonna throw a series of posts together to talk about Grav and how awesome it is. Last week, we wrote a quick overview of Grav and its features. This week, we're going to dig into the Grav CMS.

Grav Dashboard

The Grav Admin

Being a flat-file CMS means that all content exists within actual files and folders rather than within a database somewhere. This also means that everything - from content to the CMS itself - can be edited and customized from within the code files. That's super rad, but we prefer a a nice clean interface to update content (and so do our clients).

Fortunately, Grav's got it covered. The Grav Admin plugin is (optionally) included in the download that adds that very thing.

Simply put, the Grav admin is damn nice. Everything you would expect from a modern CMS is either built in or available through the extensive plugin library. The admin dashboard displays a few helpful graphs that report system and analytics information. You can see at a glance if the CMS and plugins are up-to-date, when you're last backup took place, and even some rudimentary analytics data. The analytics data seems to indescriminately capture page views and lumps everything together, so we're still relying on our self-hosted Matomo analytics for more robust reporting.

Grav Pages


Site pages are all contained within a sub-section of the admin. Collections use a parent-child hierarchy that are analogous to Wordpress's Custom Post Types. Everything from page content to custom taxonomies can added on a page-by-page basis. Templates can be created using "blueprints," which determine what kind of content can be added to a page. The templating system offers complete control over every single page on the site.

Grav Plugins

Plugins & Themes

If you've used Wordpress or a similar CMS, Grav's plugins and theme sections should feel pretty familiar. Installed plugins can be updated and configured, and new plugins can be installed directly from a master list by clicking the "+ Add" button at the top of the page. Installation and update processes are handled via AJAX and have felt snappy and painless.

We haven't had the need to dig through and test most of the plugins, but the TinyMCE Editor Integration plugin - which replaces the Admin's default markdown editor with a fully-featured WYSIWYG editor - will be invaluable when pitching the CMS to clients that are more comfortable with standard text editor styled content formatting.

The Themes section is pretty basic, and nearly identical to that of Wordpress. Users can browse through a list of installed themes and activate any of them to change the look and feel of the front-end of the website. Like Plugins, Themes can be added straight from Grav's master list, but may require some custom work if any changes have been made to the content structure.

Overall, Grav is crazy fast, simple to set up and use, and exactly what we've been looking for in a CMS. We'll dig into the overall structure of themes and how we use them to bring our designs to life in our next post.

If you think Grav could be a good fit for your next web design project (or you just want to find out more), drop us a line with the contact form below!


Interested in working with us? Just want to say hey? Spambot?
Drop us a line and we'll talk next steps, have a chat, or ignore you, respectively.