I spent the week at Big Cartel working on consolidation of store CSS files. The idea is to combine the base theme styles with any custom styles our stores introduce and automatically minify the resulting CSS file before uploading it to S3. This should speed up store loading times because there is only one compressed CSS file for the browser to download instead of (as with our Blocks theme now) three uncompressed files. Seemingly minor optimizations like this can make a significant difference in the overall page loading speed, and having the store CSS consolidated in a single file will make some of our future features easier to implement.
After my experience last week with theme pagination, I structured my approach for this feature differently. Combining existing store stylesheets with the default theme styles requires a find-and-replace for tens of thousands of stylesheets. The risk is that we might break the styles for some stores, so before making any changes, I create a backup of their existing styles for easy reversion. Initially, I’ll only be rolling out the consolidation to a small batch of stores so we can check for issues. I’m also mildly concerned about the extra load of minifying so many CSS files at once. We’re using YUI Compressor which is Java-based. Unfortunately, that means that every time we compress a file, we’ll need to fire up a new JVM. So I introduced an easy way to toggle compression off in case we see a significant impact on our app servers.
I spent last weekend working on wireframes for button-down bird’s site and a list of everything that needs to be on each page. Surprisingly, I ended up doing most of the work on my iPad. I didn’t think I’d much care for working on an iPad, but it works well when my task maps one-to-one to an app. OmniGraffle, despite being crash-prone and sometimes slow, proved effective (though given the price, I’m a bit irritated). There’s an immediacy to working on the iPad, despite some rough edges when performing complex tasks. We’ve still got a long way to go on interaction design for these devices, and I think OmniGraffle would benefit from a larger screen (just as its desktop counterpart does). But, overall, it was a productive experience, and I will no doubt continue using the app in the future.