/ reclaim

Get Your Grav On

One of the many roles I have a Reclaim Hosting is keeping an eye on our Twitter account and interacting with folks there. I'm no power-user on Twitter but it's a space I know and I'm happy to support and respond to folks there. On Saturday a tweet came in from a new user, Paul Hibbitts mentioning his beginning explorations with our service.

I like to know who I'm talking to so I took a peak at his profile and ended up at his blog where he's doing some really interesting work bringing content out of the LMS and into his own domain using a piece of software that was new to me called Grav. Grav (which is short for Gravity) is a flat file CMS meaning there's no database to deal with. It uses Markdown for authoring content similar to the ever-popular Jekyll, but what struck me was not only how easy it is to install on a server (you just need PHP to make it run) but also that there were admin tools built in to allow an authoring interface, a configuration area, plugin and theme installation and updating, even backups.

Grav Admin Interface

Grav Editor

I knew I had to play some more with it so I decided to give it a go. The install was dead simple, just drop the files in, setup a user by going to the site for the first time and creating one, and you're off and running. I figured as easy as that was, you'd still have to wrestle with FTP so why not build an installer for it using Installatron? So that's exactly what I did. In the process I was able move the user setup process out of the first page load and into the install itself by capturing that information and writing it to the necessary files.

Grav Installer

In addition Grav offers "Skeletons" which are basically packaged versions of their application anyone can build that are bundled with a theme, plugins, and content to jumpstart a new site. Imagine wanting to setup a Photography site using WordPress and all the steps you might take to get there, this let's you skip all that are start up with an instance that already has everything pre-configured so you can start adding your content and playing around rather than spending hours fiddling with a bunch of settings and finding the right plugins and themes. So I grabbed a few skeletons and made it a dropdown option to choose one during install.

Skeleton Selection

I have to say so far I'm super impressed. Not only is Grav fast since there's no database to make calls back and forth to, but it feels like incredibly modern software. There are some geekier options around the edges for power users (per-page front matter editing and YAML configs to name a few) but the presence of an admin plugin that puts the authoring tools right there on your domain is a huge step that's often absent in most flat file content management systems. And of course the big benefit to systems like this is since all the data lives directly on the file system your entire site is infinitely more portable. Moving to a new host or grabbing a backup is as simple as taking a copy of your files and away you go.

I spent so much time playing with getting the installer right I haven't had time to really dig into the software itself more than just a few quick tests but I have a lot of great plans for it. For one, our current documentation is built using Mkdocs but that requires external editing, pushing to the server, and then running a script to build the site each time a change is made. Converting it to Grav means we could author directly on the site and still push to our GitHub repo automatically and have both be in sync. And wouldn't you know there's an RTFM skeleton that looks heavily based on the ReadTheDocs theme we currently use with Mkdocs and looks perfect for documentation sites.

RTFM Skeleton

I'm looking forward to playing with Grav more to see what's possible and I know plenty of folks who have been interested in the idea of flat file systems like Jekyll that could appreciate an easy-to-use system like this. We pushed the installer out to our shared hosting systems over the weekend and I hope to get access for all our institutions in the coming week as we make some updates there. And I'm glad to have been curious enough to read Paul's bio and find out more about what he's up to with it as a starting point for my own explorations with the software. As always, Reclaim Hosting gives back to me as much if not more than what I give it.