Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An @benbalter-centric history 
of GitHub Pages and Autoblog

An @benbalter-centric history 
of GitHub Pages and Autoblog

A behind the scenes look at how GitHub Pages came about and how it works today

Ben Balter

May 02, 2015

More Decks by Ben Balter

Other Decks in Technology


  1. ! An @benbalter-centric history 
 of GitHub Pages and Autoblog

    Ben Balter @benbalter [email protected] government.github.com
  2. ! @benbalter WordPress core contributor GSoC WP Document Revisions

  3. October 2008 - “Jekyll” Launches

  4. October 2008 - Autoblog Launches

  5. November 2008 - Conveyor Launches

  6. November 2008 - Jekyll Launches

  7. December 2008 - Pages Launches

  8. December 2008 - Disable Jekyll

  9. January 2009 - CNAMEs

  10. April 2009 - Config Files

  11. ! Fast forward to 2012…

  12. None
  13. ‣ In the past, building websites with features like consistent

    templates and lists of aggregated content meant setting up complex content management systems. These CMSs consisted of templating logic, application code, and content databases so they could assemble webpages each time they were requested by site visitors. They were complicated systems that depend on many separate applications working together, like a web server to route page requests to a PHP application that uses pre-defined page layout templates to format content that’s stored in a MySQL database. Serving a page request required at least three separate applications all working together — any one failing would bring down the system…
  14. ‣ From open source frameworks like Drupal, Wordpress, and Expression

    Engine to multi-million dollar proprietary applications that the government and big corporations procure from companies that also build tanks and battle ships, these systems produce the same exact output: HTML, CSS, and JavaScript files that web browsers know how to format into the webpages we see. Additional features like RSS or JSON API feeds are just new templates for the same content, and backend workflow modules like those for embedded media and handling email notifications are really separate systems that introduce complexity when integrated with the publishing system.
  15. By October I was fed up • 130 outages over

    6 months (24+ hours of downtime) • AWS, Nginx, microcache, APC, opcode, page, and object cache, Varnish, buzzwords++ • WTF is a weekend?!
  16. !

  17. !

  18. Feb 2013 - I want moar!

  19. March 2013 - The inside man

  20. Pulling back the curtain

  21. Every developer has an itch

  22. April - down the rabbit hole

  23. May - Jekyll 1.0

  24. August - GitHub Pages Gem

  25. October - A lightbulb

  26. November - Gem-based plugins, Ruby

  27. December - CDN

  28. December - Tutorial

  29. December - Build feedback

  30. Feb 2014 - Metadata, mentions, emoji, and redirects

  31. June - Docker

  32. May - Docs

  33. July 2014 - Jekyll 2.0

  34. September - Pages Health Check

  35. January - GitHub Help

  36. GitHub Pages Architecture GitHub.com -> Pages Worker -> File Server

    File Server -> Front End Server -> CDN
  37. None
  38. None
  39. None
  40. ! Eight lessons learned hacking on GitHub Pages for six

    months http://git.io/vJ8uj
  41. ! An @benbalter-centric history 
 of GitHub Pages and Autoblog

    Ben Balter @benbalter [email protected] government.github.com