Art of the Smart

A Quick Grav CMS Review

Here are the top 3 things I love and hate would like to see change in the Grav CMS.

Things to love

A flat CMS is stupendously convenient. Not having to muck around with a database saves a lot of time and headache. It makes migrations easier because you don't need to worry about where your database is stored or exporting it to a file- but "oh, wait, it needs to be an insertion file rather than a data dump", etc.

Just copy the directory and you have the website as-is. Done deal.

This applies to backups, too. Just copy the directory (or, heck, use Git) and you're done.

Simple, efficient, and fast. I feel faster with Grav than I did with Wordpress.

What more could I ask for?

Stands on the shoulders of giants. One of the core philosophies of Grav is to leverage existing libraries and code as much as possible. By doing so, it has the advantages of those other systems.

I like that I generally don't need to learn any new systems, and the ones I do need to learn (like twig for templating) come with entire communities and documentation already available.

Sometimes I want a WYSIWYG editor, sometimes I don't. Grav lets me pick the one I need for the job. I can use WYSWYG for quick posts, or vim for longer ones (like this one).

If I need to take scripted action on my website like correcting a name, changing themes, or adjusting tags, I can do it through the site or using any scripting language available in my unix environment (like bash).

Things to change

Grav supports many use-cases, but often weakly. Look at my site, for example. I use it to host projects, a blog, and whatever else I feel like. The flexibility of the CMS is good, but it lacks advanced features for any particular use-case.

A lot of the weight of this problem rests on the shoulders of the Grav Admin plugin, and I don't envy the developers who are tasked with making it work for everyone.

It isn't a problem today, but what if I need to manage a blog with 500 posts? Or maybe view my posts in chronological order or anything. Filtering by tags? Grav can't do it yet.

The community is strong, but still small. There are many plug-ins and themes to choose from, but it's about 2 orders of magnitude less than you'd see for Wordpress or Joomla. I feel bad complaining about this, but the network effect is important and without it, we'll have a hard time coaxing developers and designers into creating material for the CMS.

Sometimes over-reliance on automatic UX It's a good thing when a UX is consistent throughout. The system configuration page looks and acts the same as any of the plug-in configuration pages! But that can also be a limiting element for more complex situations. For example, the actual system configuration page is about 4 pages long; it's a massive list of toggles and dials. While I appreciate the customization, it puts infrequently used features (like changing the cache file prefix) with very frequently used features (like turning on and off the CSS pipeline during development).

Anyway, those're the things I can think of off the top of my head. Overall I recommend it and likely won't be going back anytime soon. ;)