Grav Maga

journal technology

Up until now my blog has used Joomla. The truth is I've never much liked Joomla, so I'm taking the opportunity now to try out a CMS called Grav (hence the pun) and move everything over to Nearly Free Speech.

Why Grav (and why not Joomla)?

Obviously, for a blog, I want some kind of framework that makes it really easy to create new pages and keep them ordered, sortable, etc. That usually means a blog-oriented CMS. I don't like WordPress because it's what everyone else uses, and in part because of that, because it's too readily targeted by hackers. Joomla was the alternative I settled on for a while, but I found it difficult to work with; I never got the knack of fine-tuning the site.

I looked around for alternatives this year, and Grav looks really appealing. It's very much structured so that a web developer or author can work with the site through a command line. I won't be stuck with default structures that I'm not sure how to get rid of without a lot of fiddling.


I've used it before and it appeals to my "comfortable with accessing my web space through a command line" sensibilities. Most of my experience with web hosting (working for a company that provides it) uses their very bare-bones service that hasn't changed a whole lot since about 1995. It's very much for people who know what they're doing, and Nearly Free Speech provides a similar setup, in large part because it's inexpensive to provide. People who can take care of themselves and not have to have their hands held by support staff don't need to pay for hand-holding on tap.

There is still a part of me that deeply distrusts any CMS that buries its functionality behind slick admin pages that could break at any time. It's the next iteration of the distrust I felt the first time I saw a Macintosh computer in kindergarten, with its icons arranged in big buttons, as though it were a toy for children, provided by grownups who didn't trust us to use real computers. (Of course, they were probably wise not to trust most of us, but it still seemed wrong.)


The transfer seems to be going well. As I'm writing this, I've switched DNS over to Nearly Free Speech (it seems easier; my other domain hosted here is set up that way) and it'll take a while for that to finish so I can set up Let's Encrypt.

I definitely love this flat-file system, and the fact that all the site's formatting information and such is in command-line-editable text files. It's just so much more transparent than other systems.

The tricky thing about Grav is you need to enable web-group-writable permissions on the site, which can be problematic. Nearly Free Speech sensibly doesn't allow this by default, so the installation process requires a little tweaking.

It can also take some looking around and careful observation to find exactly which parts of a page are governed by which template files. One great strength of the system is that the templates are very nested; each little part of a page might have its own file. This makes it easy to build, say, a page that just lists all the blog posts, because there's a template that governs how to build that list item from the folder that contains the blog post itself. But it does mean you have to keep all those templates straight: for the list page, the list item, and the post, which makes a page for itself but whose data feeds into anything that refers to it.

I'm hoping that this process makes it more fun to write here, so picking the habit up again will come more easily. I admit I keep thinking how great it would be to write a script that posts a file as a blog post.

Previous Post Next Post