# GitHub Pages

## What are GitHub Pages? 

GitHub Pages are (from [GitHub](https://help.github.com/articles/what-are-github-pages/))

```
GitHub Pages are public webpages hosted and published through our site.
You can create and publish GitHub Pages online using the Automatic Page Generator. 
If you prefer to work locally, you can use the GitHub Desktop or the command line.
```

The gist, you can create and host a static website on GitHub. 

*What's static?*
Static means the pages are not dynamically updated via a backend database, however, you can use JavaScript and other client-side technlogies to create great interactions. 

## What do you need to use GitHub Pages? 

  1. A GitHub account 
  2. A repository or project 
  3. Knowledge of Markdown or HTML 
  4. A little bit of time and effort 

## Capabilities 
With GitHub Pages you **can**: 

 1. Create a free static website for projects (and one per user or organization) 
 2. Have GitHub worry about servers (plus you can take advantage of their infrastructure) 
 3. Build interactive sites using client-side technologies like JavaScript 
 4. Build a static blog using Jekyll 
 5. Take advantage of webhooks
 6. Collaborate using all of GitHub's features 
 7. Have a custom domain (like study.bu.edu)

## Limitations 
With GitHub pages you **cannot**:

 1. Run a database-driven website  
 2. Control "backend" server-side features (like .htaccess or .conf)
 3. Use HTTPS - so don't do anything sensitive

## Time for a walk through

### Let's look at the steps before starting 

 1. Go to [GitHub Pages](https://pages.github.com/) in a new tab. 
 2. Let's talk through what we are going to do for both a user/organization and then for a project 

### Via the web interface 

 1. Create a new repository named: username.github.io *where username is your username*
 2. Create a new file in your repository named index.html with the text "hello world" 
 3. Commit the file 
 4. Wait a few seconds ... and visit http://username.github.io *where username is your username*
 5. From there you can create all sorts of fun stuff using HTML, CSS, and JavaScript. 

### Via the terminal 


Update draft of GitHub Pages demo
Update draft of GitHub Pages demo