Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Clone in Desktop Download ZIP
The repository for the Frontend Performance training
HTML JavaScript CSS Ruby
Branch: master
Failed to load latest commit information.
.bundle :gem: install bundle locally
_audit :black_nib: whitespace
_automation :scroll: update content and links
_budgets :scroll: update content and links
_drupal :black_nib: advagg bullets
_foundation integrate bootstrap
_img :sunrise_over_mountains: add sample images
_includes :pray: consolidate CTA text for each activity section
_js :bar_chart: store activity progress
_layouts :blush: viewport tag.
_sass :octocat: add repo URL
_workflow :dolls: add font-related activities and articles
css :penguin: add CSS directory for fresh clone of codebase.
examples :lock_with_ink_pen: update critical CSS bash test
img :sunrise_over_mountains: imagemin gulp task
js :octopus: add combine/minify JS task
.gitignore :sunrise_over_mountains: add sample images
.nvmrc :construction: specify node version via nvm
.ruby-version :gem: add ruby version
.travis.yml :racehorse: avoid race conditions in test task
Gemfile :gem: add Gemfile and lock
Gemfile.lock :gem: add Gemfile and lock
LICENSE :books: add a license
README.md :warning: warning about sudo
_config.yml :dizzy_face: move _browser to _audit
about.html :newspaper: update conf-specific stuff
audit.html :pray: consolidate CTA text for each activity section
budgets.html :black_nib: update budgets page
config.rb create Sass stuff
drupal.html :pray: consolidate CTA text for each activity section
foundation.html :link: add demo of http2
gulpfile.js :construction: use browsersync port for uncss
index.html :nail_care: make front page cleaner
package.json :zap: add ngrok+wpt task
workflow.html :scroll: update content and links

README.md

Frontend Performance Training

This repo contains slides and materials to help you learn about frontend performance. From basic principles to workflow automation, you and your team can learn how to audit sites, fix problems, and stick to a performance budget throughout the life of a project.

Learning Objectives

  • Create a foundation of knowledge which allows you to optimize an existing site.
  • Confidently build a performant site from scratch while balancing other priorities like feature backlogs and deadlines.
  • Use automated workflow tools to check every change you make to a site, ensuring that major changes in performance do not go unnoticed during the development cycle.

History

Installation

This repo uses Ruby and npm to power a Jekyll site. Assuming you already have Homebrew, the following commands will install the whole training kit for you (run them at the root of the repo).

NOTE: NEVER USE sudo TO INSTALL

OS X

# update homebrew
brew update

# install node version manager the specific version
# of node.js needed by these training materials
brew install nvm
nvm install v0.12.7
nvm use

# install rbenv
brew install rbenv
brew install ruby-build

# install ruby
rbenv install 2.0.0-p451

# install the rest of the tools
gem install bundler
bundle install
npm install -g gulp
npm install

# run the development server
gulp bs

Debian/Ubuntu

# update repositories
sudo apt-get update

# check for old node package
dpkg --get-selections | grep node

# if old node package installation found by previous command, remove it to avoid name collisions
sudo apt-get remove --purge node

# install node.js
sudo apt-get install nodejs

# create a symbolic link for “node” as many Node.js tools use this name to execute.
sudo ln -s /usr/bin/nodejs /usr/bin/node

# install npm
sudo apt-get install npm

# install rvm
\curl -sSL https://get.rvm.io | bash -s stable --rails
source ~/.rvm/scripts/rvm

# install ruby
rvm install ruby-2.0.0-p451
gem install bundler

# install the rest of the tools
cd path/to/this/repo
bundle install
npm install -g gulp
npm install

# run the development server
gulp bs

Windows

Unfortunately at this time we do not have detailed, reliable installation instructions for local Windows development. We recommend using a linux VM for development, and your preferred Windows IDE to edit files.

Something went wrong with that request. Please try again.