So, what is Grav? It’s a content management system (CMS) or, said another way, it’s an application to make websites. But differs from other CMSs like Drupal or WordPress in its underlying technology. While it’s a PHP app like those two, unlike them it does not have a database. All data is written directly to files rather than stored and retrieve from a database. This is known as a flat-file system and it can help with performance given numerous database calls can slow down sites.
Why and when would you use Grav? I’m not sure I would push a faculty member or student towards Grav if they weren’t somewhat technically-inclined. It’s not that Grav is particularly difficult, every CMS has a learning curve, but rather it gets really interesting when you can integrate it into Github using the Github Sync plugin, which sync everything on your Grav site to a Github repository for others to contribute to, clone, or fork.
But is it educational? Thanks to the great Paul Hibbitts, absolutely. One of the cool things Paul has been doing is building packages with predefined themes and plugins to create a focused functionality. We have these as part of our shared hosting servers, and they add fun options like a Resume, Photo site, Open Course Hub, etc. In many ways it is quite similar to what Brian Lamb and Alan Levine imagined with their SPLOTs.
The package are well maintained. In fact Paul just updated a few Installatron packages at Reclaim Hosting, which you can try out on our demo server at stateu.org.
To get more familiar with Grav, I actually installed and played around with the Open Course Hub package to re-make the Workshop website.
The original is a course/blog theme (deprecated since this article was originally written, so that'll take you to the Wayback Machine's archived version, which may look a bit less shiny) designed by Paul. I used his package to install on Reclaim and then synced with Github (which the wizard makes quite simple if you have an account). I deleted much of the pages in the original and keep the sidebar and page structure—notice the “Edit This Page” link that leads you to Github.
One of the issue I ran into as I was getting acquainted with Grav through the Open Course Hub package is that changing the menu structure or the blog post structure took me a bit to figure out. This is always the case with learning new systems, but when installing these packages you may feel somewhat tied to the pre-existing structure.
I’ll provide a quick anatomy of the homepage in my Grav to explain what I mean. Here is a look at the Grav pages management area:
Page Management Area of Grav
The pages under home are part of the blog. Keep in mind Grav is not necessarily a blogging engine, so the blog functionality is a bit of an addon that you need to build which depends in part on your theme. Paul setup the Open Course Hub that it would have the blog feature enabled by default. The blog posts are known as “items” and you can see the content for the “Day 1 (March 15th)” post below:
Text Editor for Blog Item in Grav
Like Ghost, Grav is built to write using Markdown and you can see in the Content tab that it has a basic visual editor similar to WordPress. The other tabs are where you would control various features of the item.
In the Options tab you can update the date of the post, the status (published, draft, etc), add categories, tags, etc.
In Advanced you can control parent page, template, ordering, etc.
In Blog Item you can add featured image, link, summary excerpt, etc.
In retrospect it is simple enough, but after being so trained to think through the WordPress dashboard it’s amazing how much of something as simple as creating a post you take for granted.
See original post here for some great comments from folks who have far more experience with Grav then I do.