OER on GitHub

GitHub is a cloud Git repository hosting service, with benefits! It provides a handy web interface for managing, editing, and collaborating on remote Git repositories. Originally designed to manage large open-source software projects, its use has expanded to many other types of organizations and individuals, with over 20 million users. Accounts are free for public repositories–private repositories are available on a subscription pricing model.

Features:

Hosting your source code on GitHub makes it easier to write, access, share, and reuse OER, ensuring the content is provided in a truly open manner.

However, one amazingly useful GitHub feature is GitHub Pages, a free service that provides static web hosting from any repository. Using GH-Pages removes infrastructure and cost barriers, making it a great option for teaching and learning because your web presentation and source code will be openly available from the same platform.

Static Web

Unlike WordPress or Drupal, gh-pages is not a content management system or dynamic web application. There is no database, server side language / processing, or admin interface. This is known as a static web host. HTML, CSS, and JS stored in the repository are served to the user without dynamic changes.

In the olden days static web was the norm, but database driven dynamic web sites have dominated the last decade. Dynamic web applications enable features such as live comments, user authentication, and personalized streams. However, this functionality requires complex server-side infrastructure and processing.

Despite their limitations static sites are experiencing a new boom, because they offer some significant advantages:

To make development easier, hundreds of static site generators have sprung onto the scene. Static generators are commandline applications that bundle together a stack of web development tools which are used to transform a directory of source code into a web site. Static site generators typically feature a command line interface, a builtin development server, simplified markup based content, a web templating language, a CSS preprocessor, and file-based data options.

Jekyll

Jekyll is the most popular static site generator, largely because it is integrated into GitHub Pages. This means that with a template or theme you can use Jekyll without installing anything on your local machine.

Jekyll enables the separation of the content and data from the look and feel of the website. The creation of content is simplified by using Markdown. This ensures that your OER is easily editable and sustainable, with self-contained and portable content. It lowers the barrier to contributions, since content creators can just learn about Markdown (which takes about a minute) to meaningfully engage with the website.

To make a website like this one (or like many of the examples), the basic steps are:

GH-Pages Overview
  1. Have a GitHub account.
  2. Optional: have Git, Jekyll, and a nice text editor installed.
  3. Import or Fork a Jekyll theme or template (such as workshop-template) on GitHub.
  4. Work on the GitHub web interface to edit files, or clone to your local machine.
  5. Edit the site configuration _config.yml with your info.
  6. Edit the content pages in markdown.
  7. Add images to the “images” folder.
  8. Push to GitHub (or commit on the web interface).
  9. In your repo’s settings, activate gh-pages, using master branch.

For a full introduction to the basics, check my go-go gh-pages workshop.