sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.
Go to file
soulgalore 7728f91e05 use FF 50.1 2016-12-25 23:13:46 +01:00
.github Use exact example on how you run it. 2016-12-21 07:58:40 +01:00
bin First pass at supporting URL aliases for #1326 (#1374) 2016-12-12 00:06:20 -05:00
docker trap exit, inspired by docker selenium 2016-12-12 17:06:06 +01:00
docs Add step to stop and remove docker-compose containers 2016-12-22 22:26:08 -05:00
grafana-setup new example dashboards and hey, is that really the correct way to name the datasource to get it to work? 2016-10-05 23:05:29 +02:00
lib latest perfcascade with video and sound icons 2016-12-21 23:30:19 +01:00
test First pass at supporting URL aliases for #1326 (#1374) 2016-12-12 00:06:20 -05:00
tools Change Jade to Pug 2016-06-10 22:16:33 +02:00
.dockerignore Smaller docker footprint (#1168) 2016-08-30 21:40:20 +02:00
.editorconfig Intial commit of sitespeed.io 4.0. 2016-03-10 23:07:36 +01:00
.eslintignore Disable linting for third party js. 2016-04-18 09:35:53 +02:00
.eslintrc Check for bitwise operators in eslint. 2016-03-29 23:52:16 +02:00
.gitignore Moving sitespeed.io over to github pages #1240 2016-10-13 23:24:21 -04:00
.pug-lintrc Disable lint rule until we rename jade to pug. 2016-06-06 21:04:09 +02:00
.travis.yml dropped support for nodejs 4 2016-11-11 23:52:16 +01:00
CHANGELOG.md new release 2016-12-22 19:10:38 +01:00
CONTRIBUTORS.md cred to jpvincent 2016-12-12 01:35:33 +01:00
Dockerfile use FF 50.1 2016-12-25 23:13:46 +01:00
HELP.md Updated for 4.0 2016-10-26 14:03:55 +02:00
LICENSE Intial commit of sitespeed.io 4.0. 2016-03-10 23:07:36 +01:00
README.md Adding video example. 2016-12-16 00:23:41 +01:00
docker-compose.yml use latest grafana 2016-12-13 06:09:35 +01:00
local-development-docker.md renamed to show it's Docker based 2016-10-05 22:26:58 +02:00
package.json 4.3.0 2016-12-22 19:12:00 +01:00
release.sh Simplify shell code to get package version. 2016-10-29 12:06:16 +02:00

README.md

sitespeed.io

Build status Downloads Docker Stars Changelog #212

Website | Documentation | Twitter

Welcome to the wonderful world of web performance!

Using sitespeed.io you can:

  • Test your web site against Web Performance best practices using the Coach.
  • Collect timing metrics like Navigation Timing API and User Timing API from Firefox/Chrome using Browsertime.
  • Run your custom-made JavaScript and collect whichever metric(s) you need.
  • Test one or multiple pages, across one or many runs to get more-accurate metrics.
  • Create HTML-result pages or store the metrics in Graphite.
  • Write your own plugins that can do whatever tests you want/need.

And a lot of more things. But what does it look like?

A summary report in HTML:

Individual page report:

Collected metrics from a URL in Graphite/Grafana:

Video (if you use the Docker version):

4.0

Version 4.0 is a ground-up rewrite for node.js 6.9.1 and newer. It builds on all our experience since shipping 3.0 in December 2014, the first version to use node.js.

Using Docker:

$ docker run --privileged --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io --video --speedIndex https://www.sitespeed.io/

Or install using npm:

$ npm i -g sitespeed.io

Or clone the repo and test the latest changes:

$ git clone https://github.com/sitespeedio/sitespeed.io.git
$ cd sitespeed.io
$ npm install
$ bin/sitespeed.js --help
$ bin/sitespeed.js http://www.sitespeed.io

Why 4.0?

There's a lot of things that we wanted to improve since 3.0. Here's some of the most important changes:

  • We support HTTP/2! In 3.X we used PhantomJS and a modified version of YSlow to analyze best practice rules. We also had BrowserMobProxy in front of our browsers that made it impossible to collect metrics using H2. We now use the coach and Firefox/Chrome without a proxy. That makes it easier for us to adapt to browser changes and changes in best practices.

  • We now support the feature that people asked about the most: Measure a page as a logged in user. Use --browsertime.preScript to run a selenium task to before the page is analyzed. Documentation is coming soon.

  • New HAR files rock! In the old version we use BrowserMobProxy as a proxy in front of the browser to collect the HAR. In the new version we collect the HAR directly from the browser. For Firefox we use the HAR export trigger and in Chrome we generates it from the performance log.

  • Stability: We have a new completely rewritten version of Browsertime that makes it easier for us to catch errors from the browser, drivers and environment problems.

  • Speed: Yep we dropped Java (it was needed for BrowserMobProxy) and most things are happening in parallel with the new version.

  • Don't overload Graphite: One thing that was annoying with 3.x was that it by default sent a massive amount of metrics to Graphite. That's cool in a way but it was too much. We now send curated metrics by default and you can choose to send more.

  • You can collect metrics from Chrome on an Android phone. In the current version you need to have it connected using USB to the server running sitespeed.io, lets see how we can make it better in the future.

  • Using our Docker container you will get support getting SpeedIndex and startRender using VisualMetrics. This is highly experimental at this stage.

  • We now support video and calculating SpeedIndex (since 4.1). Use our Docker container to get an easy ride.

There are new things that will come also that isn't 100% implemented yet and you can help us.

  • InfluxDB support. We have started with a POC but need to implement it properly, see 889.

I want to help!

We have a special page for you!