Tuesday, June 9, 2015

A super short introduction to using GitHub for hosting a non-profit website.

GitHub is a for-profit firm that effectively has created a social network of open-source hackers.  It is now a "place" to go for hackers.  Fundamentally it is a repository for tracking, versioning, and retrieving files---but EFFECTIVELY it is a social work place for files.

By files, we mainly mean computer programs, which really require versioning.  But you can put anything there.  

GitHub makes it completely free as long as you are public/open source in your files.  You have to pay to have private files.  GitHub graciously gives 501c3 charities $25/month of services for free.  You can do this if we need a private repo.  For example, I am on a board where we keep private files, and also have a public face.

Additionally, GitHub implements "GitHub pages", which is a lot like WordPress or BlogSpot.  The main difference is that content is mostly not created with a "What you see is what you get (WYSIWYG)" editor. In general, you create content using a very, very simple version of HTML called "markdown".  

Here is a site that is implemented with GitHub pages: http://presidentialinnovation.org. The "repo" for it is here: https://github.com/presidential-innovation-foundation/presidential-innovation-foundation.github.io, where you can partially see how the site is constructed if you study.  Anyone can make a "pull request" which will be taken as a suggestion by the owning organization.

I think it looks rather nice.  To make it look nice, you have to do some extra work, but it is just "plain old HTML and CSS".  This is more or less easy.  By using GitHub pages, you are sort of using the "plainest" and simplest hosting technology that we can.

When you start with github pages, you get a URL like http://github.io/yournewsite.  However, you can point any domain you own at it.  That is how "presidentialinnovation.org" gets pointed there.

One of the great things about GitHub is that you can create an "Organization" which can then own "teams" and "repos", which are ways to organize projects and subproject.  This means that you can control who is empowered to post things on the site.

Someone will NOT be able to post things on the site unless they either:

*) Get a free github account and you add them to the "team", or,
*) They submit a "pull request", and someone on the team "merges" it.

This is how open source is organized.  ANYONE could make a pull request (that is, "request us to pull their change into they site"), but only YOU can merge it.  It is not uncommon for people to make pull requests to fix typos, or to augment information, for example.

I believe for many charities, clubs, and organizations, hosting a web site with GitHub Pages should be a defacto starting point.

No comments:

Post a Comment