Update: We’ve released Cesium 0.1.1, which can be downloaded here: http://people.mozilla.org/~rdoherty/cesium/cesium-0.1.1.zip
YSlow is an invaluable resource for developers who want to ensure that their web applications are as responsive as possible to users. For those who don’t already know, YSlow is an extension for Firebug, another incredibly useful tool for web developers, which is in turn an extension for Firefox. Developed at Yahoo!, it calculates a score for a web page’s overall performance using a number of heuristics (http://developer.yahoo.com/performance/rules.html) based on web development best practices geared specifically toward decreasing page load times.
But YSlow is not without its own limitations. It requires the user to manually visit each individual page they want to test, which can be mind-numbing and time-consuming, especially on sites with more than a handful of pages. Additionally, YSlow does not have a feature for tracking the history of the scores that it calculates, thus making it rather difficult to examine the changes in performance as the codebase of a site changes.
Enter Cesium. Cesium is a hybrid web application/testing harness that automatically runs YSlow on a suite of pages of the user’s choosing at scheduled times, stores these results, and provides a host of graphs and other data concerning the results of these tests.
Cesium provides these services by using a less advertised feature of YSlow called the beaconUrl. This beacon can be set to an arbitrary web address in Firefox’s about:config. YSlow will then send the results of its test runs to this remote address, allowing Cesium to record and display them.
Cesium 0.1 has just been released, and I would like to encourage anyone who is interested to check out the wiki page for more information on how to get the source to play around with it and hopefully contribute! We’re planning a major redesign of the web interface along with some other awesome features. Also feel free to contact us on IRC (#cesium on irc.mozilla.org) or file a bug.