Yep, it took us almost half a year to migrate sitespeed.io to NodeJS and now it is ready for a release! The new version is faster, has a much richer feature list and is so much easier to maintain.

Here's a list of the new things:

  • NodeJS - We moved (almost) everything to NodeJS. We are still dependent on Java, because the (old) Java crawler is still used and we will try to remove it in the future. The new version is faster than the old one. And so much easier to change and better separation between logic and
  • Send metrics to Graphite - one of the number one feature requests for sitespeed.io has been to collect data over time and graph it. Sitespeed.io now supports sending the metrics to Graphite It can looks something like this
  • RUM SpeedIndex - We have rewritten BrowserTime to NodeJS, and it now supports running whatever javascript snippet you want< meaning you can fetch whatever metric you want. It is not fully implemented yet in sitespeed.io, but with the current version it gives us Pat Meenans RUM SpeedIndex and support for getting resource timing API metrics.
  • PostTask - when sitespeed.io has analysed all pages and collected the metrics, you can run your own code to handle the result. This can be used to store the data in a database or create your own reports.
  • Drive WebPageTest - you can now feed WebPageTest with URL:s to test and collect the metrics and include them in your sitespeed.io report.
  • Google Page Speed Insights - collect the score and other data and show it in your sitespeed.io report.
  • Support for PhantomJS 2 - yep we know, 2.0 is not released yet and we are really looking forward to it, so we added the functionality to use it already. What's extra cool with 2.0 (except that it is much faster) is that it supports the Navigation Timing API. You can use it by pointing out your binary by --phantomjsPath
  • Two new rules - check if connection is closed and don't set private headers on static assets.
  • Two new summary pages - slowest domains and hotlist (find troublesome assets fast)
  • TAP - you can now generate TAP reports, making your CI tool break your build if you don't follow the web performance best practice rules
  • Performance budget - we kind of had support for a performance budget before with the JUnitXML. With the new version it is much cleaner: specify which values you will test against and run.
  • Throttle the connection - You can throttle the connection when you are fetching timing metrics from the browser. Choose between:
    • mobile3g - 1.6 Mbps/768 Kbps - 300 RTT
    • mobile3gfast - 1.6 Mbps/768 Kbps - 150 RTT
    • cable - 5 Mbps/1 Mbps - 28 RTT
    • native - the current connection

Tobias and me (Peter) have worked really hard the last half year to make the 3.0 release happen. We hope that you will love it as much as we do. There are still bugs out there, if you find them, please add an issue at GitHub and solve it with a pull request :)

The input parameters has changed since 2.5. Yep we know it is bad practice, the reason is that the old version had a really bad CLI handling where you could only fetch a input parameter with a character and we where running out of characters! To see the new parameters see
sitespeed.io -h