DoneCal gets a grade A (92) All the hard work I've put into DoneCal pre-optimization has paid off: Got a Grade A with 92 percent on YSlow!

What's cool about this is that unlike other sites I've built with high YSlow score this site is very Javascript intense and rendering the home page depends on 9 different Javascript files weighing over 300 Kb which when combined and packed for production use is reduced down to 5 requests and weighing in just over 80Kb. The reason it's still 5 and not just 1 is also important. This is deliberate since it only loads the minimum first to render the calendar and then after the DOM is fully rendered more Javascript is pulled in depending on what's needed.

One annoying thing about YSlow is that it suggests that you use CDNs for Javascript and CSS files. What they perhaps don't appreciate is that most CDNs don't support negotiated gzipping like Nginx does. The ability to gzip is a CSS or Javascript file generally means less waiting for the client than getting it un-gzipped from a CDN. One thing I will work on though is perhaps serving all the images that support the CSS from my Amazon Cloudfront CDN. Gzipping is not applicable to images.

Bradley Wright - 27 November 2010 [«« Reply to this]
It's worth noting that Amazon Cloudfront supports custom origin servers now, so you can have both the varying Gzip encoding and the benefits of distributed servers at the same time.
Peter Bengtsson - 27 November 2010 [«« Reply to this]
Doesn't that mean that I can "back up" by CDN with my Nginx. As a fallback that is. How does that change how CloudFront can serve negotiated gzipping?
Bradley Wright - 27 November 2010 [«« Reply to this]
Origin server means the place that CloudFront gets original content from, and that Accept: headers are sent over HTTP 1.0 to Nginx. See here for more information: http://www.nomitor.com/blog/2010/11/10/gzip-support-for-amazon-web-services-cloudfront/


Your email will never ever be published