One of the (many) great things about using the open source CMS Grav for a flipped-LMS approach is that no database is required, which makes running a local copy of Grav on your computer for testing purposes a very straightforward process. This also makes deployment to a Web server a breeze - just a simple folder copy.

In this brief article we will look at how to use MAMP, a tool to safely run a PHP server on your computer, to view Grav sites locally on your Mac or Windows PC.

Step-by-step Instructions

  1. If you do not have an existing Grav site on your computer, download a Grav Skeleton at ( and extract the downloaded archive file

  2. Create a folder called ‘MAMP Websites’ in your ‘Documents’ folder

  3. Copy the entire Grav folder into your ‘MAMP Websites’ folder

  4. Launch MAMP (but do not press the ‘Start Servers’ button yet)

  5. Press the MAMP ‘Preferences’ button

    MAMP startup Screen
    Figure 1. MAMP startup screen where the ‘Preferences’ button is located.

  6. Press the ‘Web Server’ tab in the ‘Preferences’ dialog

    MAMP preferences dialog
    Figure 2. MAMP preferences dialog, with the ‘Web Server’ tab on the far top-right.

  7. Change the ‘Document Root’ MAMP preferences setting from the default value ‘htdocs’ within the MAMP application folder to the ‘MAMP Websites’ folder that you previously created within ‘Documents’ by pressing the select folder button (a folder containing three dots), choosing the folder, and then pressing the ‘OK’ button

    MAMP Web server tab
    Figure 3. MAMP Web server tab, with the select folder button represented by a folder containing three dots.

  8. Press the MAMP ‘Start Servers’ button (as shown in Figure 1)

With MAMP installed and running you can now view your Grav site(s) locally. Launch your Web Browser, enter the URL http://localhost:8888 and then choose the displayed Grav folder name. That’s it! If you downloaded a Grav Skeleton with the Admin Panel pre-installed you will be prompted to create your administrator account.

Additional MAMP Setup Options

If you would prefer, you only need to enter ‘http://localhost’ in your Web Browser to access your MAMP htdocs directory listing, then do the following:

  1. Launch the MAMP application - if MAMP is already running, press the ‘Stop Servers’ button

  2. Press the MAMP ‘Preferences’ button (see Figure 1)

  3. Press the ‘Ports’ tab in the ‘Preferences’ dialog

    MAMP ports panel tab
    Figure 4. MAMP ports panel tab.

  4. Change the value in the ‘Appache Port’ field from the default value ‘8888’ to ‘80’ (no quotes)

  5. Press the ‘OK’ button

If you are curious about how a local copy of Grav can be used with GitHub/GitHub Desktop for super-easy deployments while fully supporting student collaboration, check out the article Using Grav with GitHub Desktop (and Deploy).

But first, what does the term ‘flat-file CMS’ mean? In a nutshell, content is stored as individual text files rather than in a database.

I am excited to be presenting my approach of a Flipped-LMS at Simon Fraser University’s DEMOFest 2015 on November 24th.

Here is the description of my session:

Flipping the LMS: Benefits and Lessons Learned of Using an Alternative Front-end to Canvas

Let’s be honest, as course facilitators we want to deliver the best possible online learner experience but at the same time make our own experience as convenient as possible. LMSs, such as Canvas, provide some great pedagogical elements but often fall short when it comes to such things as streamlined course updates, content reuse, easy customization, and providing a truly open platform. The solution? Flip the LMS!

A flipped-LMS is an approach where an open platform, chosen by an instructor, provides an alternative (and preferably collaborative) front-end to their institutional LMS. In this presentation Paul will demonstrate how this approach can produce significant improvements to both the student and instructor experience. Elements from Paul’s personal toolkit to be highlighted will include Canvas (naturally), the open source flat-file CMS Grav, and GitHub Desktop.

Presentation Slides

A flipped-LMS is where an open platform, in the control of instructors and students, is an alternative (and ideally collaborative) front-end to the institutional LMS..

In this article I will describe the workflow details for my Fall 2015 Simon Fraser University CMPT-363 course companion, which meets the requirements first outlined in the LinkedIn article Online Course Companions: Workflow Requirements for (us) Instructors.

The one element that makes everything possible is the open source CMS Grav, which in addition to empowering me to provide a great user experience for my students, uses a non-database approach in which content and code are stored separately as text files (often referred to as a flat-file CMS). Within content text files it is possible to use plain text, Markdown and HTML. Grav also supports modular content, which means content can be displayed in multiple areas and contexts but only needs to be stored once. Think content blobs vs. chunks.


  • MacBook Air (primary work platform)
  • Surface Pro 3 (secondary work platform)
  • Samsung Galaxy S5
  • ASUS Nexus 7 Tablet


Workflow (Mac or Windows)

  • Edit one or more course companion files in a text editor (e.g. Atom or any other of your choice)
  • Preview locally within a Browser using MAMP (optional step)
  • Review and commit changes to course companion GitHub repository via GitHub Desktop

Atom Text Editor Figure 1. Adding a new article link in the Atom text editor (modular content that will be displayed in multiple areas of the site).

GitHub Desktop Figure 2. Previewing and then committing changes to the GitHub repository.

Once the changes have been pushed to the GitHub repository then Deploy can be configured to automatically get a notification and update the course companion site via SFTP. Priceless.

If I need to make a quick update with any mobile device I can do so via the GitHub website, and these will later be synced down to all my GitHub Desktop clients. These changes would also be automatically updated on the course companion site by Deploy via SFTP.

Let’s talk about two critical issues: time and trackability. In terms of time, I can now make simple changes to the course companion in a fraction of time (e.g. 30 seconds) that would be required by many database-driven LMS’s such as Canvas or Moodle. This is really important, as the faster (and easier for that matter) course companion updates are the more likely that us instructors will continue to make improvements throughout the term. Having each and every change made to the course companion be trackable, and essentially reversible, not only helps minimize possible errors but helps decrease the anxiety that often comes along with frequent (and not easily reversible, esp. with regards to code changes) site updates by the instructor.

Awesomeness on Top of Awesomeness If the above is not enough benefit for this workflow, here comes the kicker: since all changes are flowed through GitHub, the entire course companion is not just in the open but also truly collaborative. Students can suggest changes, which are then previewed by the instructor and immediately applied or be the start of a further dialog with a student. In other words, a course companion (aka learning platform) that students and instructors can both contribute to and improve over time. And this is not just about content, but also code (i.e. functionality of the site) if your students are familiar with common Web languages, as my Simon Fraser University Computing Science students are. In fact, I’ve now come to the conclusion that this should be a baseline requirement for any learning platform of mine from now onwards.

CMPT-363 Course Companion Screenshot Figure 3. A course companion page with a “Edit this page on GitHub” link to seamlessly initiate the process of submitting changes via GitHub.

Well, there you have it. If you are interested in learning more about this workflow, or about my experiences of using Grav CMS as a means to support a flipped-LMS approach (in my case with the Canvas LMS), please get in touch.