Can Grav do this? course to support teaching

I teach a course on “how to teach” and I’d like to create a kind of website for my students like this:

  • Password protected parts of the website; just for my students.
  • Highly responsive pages. ie full width images that just adapt, text that just adapts (etc); maybe two columns on a desktop change to stacked one column in smartphone
  • Easy to insert video clips (and links to youtube)
  • Easy to insert slideshows that also are responsive.

Preferably click to edit, click to save sort of scenario (rather than edit elsewhere and upload)

It’s the password protected part that is more like an LMS; it’s more like a website than a click to turn the page sort of learning module.

No need for tracking or anything.
The reason I am interested in a grav type environment is that I have used a few things where it is all click fill in the form, save; I wondered if markup may be quicker?



Hi there, @derekcx!
Let me answer one by one:

That’s actually really easy via the login or private plugin. Also the ‘password only’ scenario.

Absolutely! There are lots of fully responsive themes, bootstrap based as well as designed with gantry.

mediaembed automagically converts links to YouTube, Vimeo and some other websites to embedded media.

Lots of ways to do this.

If you want, you can develop this project in a ‘fill form and click’ way that you’re used to, you can as well work using raw markdown files with proper shortcodes, it’s up to you :slight_smile:

I hope I was able to answer some of your questions, if you have any more, feel free to ask.

You also might want to check out @paulhibbitts resources:

Thanks for the mention @rhuk. @derekcx, you might be interested in my Open Course Hub project in particular

I use this project for my own courses at Simon Fraser University too, and my latest one (still under construction) for my CMPT-363 User Interface Design course is available at

Thanks @MakaryGo and (sorry can only mention two users) rhuk

Yes, your courses look good @paulhibbitts Paul. (Really good)
I’m in the process of installing Grav locally.

So it looks like you run Grav parts of your course outside of Canvas and pop back to Canvas as needed?


Yes, that is correct. I call the approach ‘flipping’ the LMS with Grav and you can read more about it on my blog at (esp By using this approach you can leverage the best parts of your LMS while using Grav as an open, collaborative and flexible CMS/platform (which almost all LMSs are awful at).

In regards to “flipping” and integration, does this require that SFU hosts the Grav-installation(s)? Or put better, do they? I am looking at the same approach, and I’ve yet to test out the integration properly, but Canvas’ lack of reusable code (eg., snippets, scoped variables) is a continuous annoyance.

Would be great to utilize Grav as the CMS for the LMS, but internally hosted so course materials remain visible only within Canvas and scoped to courses. Not as open as we’d like, I know, but that’s the practice at the university I work at, especially for specific semesters and contact-details.

In my case, I host the Grav Course Hub installation externally. This works well as I also want all my course materials in the open as well (all student-specific info is always hosted securely within Canvas).

Another approach is to use the LTI Redirect Tool to embed one or more Grav pages within a Canvas site. Here is a Canvas site with 3 examples of embedded Grav site content: I’ve got a “chromeless” option in most of my education-related skeletons/themes to support this exact technique (as Grav global nav within Canvas can easily confuse students).

As you describe, you could certainly host the Grav site internally as well. My school lacks modern PHP hosting services, so I’ve used a shared host provider (Reclaim) for that reason too.

This collection of student feedback from 2 years ago might interest you too (I made a series of changes based on this):

I’ve been reading your resources on this in preparation for a functional prototype. Other than not currently being available, the only technical limitation is the internal routing as far as I can tell. WordPress is already available as pretty much a one-click solution so there’s no reason Grav couldn’t be.

I think in particular the point about shared content between Canvas and the public front-end is a good argument. There’s an impressive amount of copying and pasting between systems, currently running a mix of Drupal, Canvas and self-made solutions. The other, rather bigger, limitation is convincing an IT-department at a large institution to make any adjustments on any level - having already spent time and resources on Canvas.

Please keep me posted (here or on Slack) and let me know if I can be of further help. Do any of my Grav skeletons/themes look like a good fit for your needs?

The one thing you also need to check is URL ‘travel-through’ for password protected pages. In other words, if a link within Grav points to a Canvas student-only item the university login must continue the user to the destination link after authentication. This is exactly how SFU’s Canvas install works (as all should).

Thanks for the posts here. Ramble follows: actual questions at the end.

Got Grav installed locally on my home machine. (Had to set up a web server locally, never done this before, I will come back here and add some notes on how to do this somewhere - the actual Grav notes here assume some knowledge) I do not at the moment have access to proper webserver space where I can put stuff in the top level rather than in a folder.

**Lots going on in my mind: ** Looking at the workflow options. Where best to go for help docs? How can I insert an image quickly? Carosel vs Slider? Inserting videos . . .? Tags, categories, taxonomy??

I had a look at Gravstrap in a search for ‘accordian’ But is it still current? Do I want to use shortcodes?

There seems to be an option of having snippets of content that gets reused, Modular pages. (This search “Modular Pages” in google comes up pointing to Grav at the top). Do I need a text editor? How will I really like all the extra typing in using Markup? It’s much better than 372 clicks for some other systems. Embedding pages in an LMS?

It’s probably now a matter of commitment and then time. And RTM. I’ll check out your other pages @paulhibbitts

So, trying to be a little sharper with a few questions:

  • Is Gravstrap with short codes worth pursuing? Nice tabs, accordians, carosels built in. These are the three things I’d like.
  • Each time you install a plugin do you have to learn the coding?
  • Is there a drag and drop way to insert images? Or what is the best workflow?
  • Ultimately: do you work locally, ftp up afterwards to server or?? Do you need a text editor?
  • What is a good combination of user/private plugins to get some parts of the site behind a password? There seem to be several options
  • Is slideshare the best way to get slideshows into Grav, or is there a nice plugin?

And I know some of these will probably resolve themselves with a read of



Just gonna answer this one :sunglasses:
You could work locally and SFTP up, that’s what I do. There’s also the option to work locally and sync with GitHub, and Grav will pull your changes down from GitHub - I do this for one of my other sites. You could also work directly in the admin GUI without needing to upload at all. Grav offers many options which is one of the reasons I love it so much :heart:

You don’t need a text editor. However! I can’t recommend Atom enough. Free, cross platform, GitHub integration, tons of plugins… really probably the best free text editor out there. And it’s made by the folks at GitHub! I don’t want to get off track so I’ll let others chime in on the rest of your questions.

Hi Derek,

I’ll try to answer a few of your questions outside of info :

Re: Gravstrap, it depends if that theme fits your needs. Theme’s are more tightly coupled to content in Grav than many other CMSs. You might also want to check out the the more theme-independent ShortCodes UI plugin (GitHub - getgrav/grav-plugin-shortcode-ui: Grav Shortcode UI Plugin) which also needs the ShortCodes plugin installed.

Re: Slideshare, as Grav is an open platform you can embed almost any third-party slides. You might also want to check out for Markdown-based slides and also Grav’s FullPage plugin which also (of course) uses Markdown for slide content.

Hope the above info helps,

As noted, the Docs are an excellent resource. As for other things going “on in your mind”: Plenty of varied workflows you can utilize, some focused on security, some on ease of use, some combining ways to go about it. In Grav’s Admin-interface pictures are drag’n’drop, as are videos. Try both a slider and carousel, see what you prefer, they are easy to create in theme and can be managed via Admin if the theme sets it up, or with shortcodes. Taxonomies are very easy, and can be as abstract as you like.

  • GravStrap can be a good alternative, testing it out and seeing if its fits shouldn’t take more than 15 minutes - it’s up-to-date as far as I can tell.
  • Almost all plugins can be managed via the Admin-interface.
  • As noted, you can drop images into a page’s folder, or just drag it into the editor, it will end up at the same place regardless.
  • You never FTP, you SFTP unless you are comfortable with more advanced workflows like syncing via version control.
  • I would favor leveraging Grav’s access controls for managing protected parts of the site.
  • Slideshare is pretty, as are many other similar libraries. I currently use FullPage.js, which as Paul notes has a plugin for Grav.

Yes, my mistake above. I was saying ‘FTP’ in the colloquial sense - should have been more specific.

1 Like