21 Sep 2011
Patents have been filed, bugs squished, datasheets reviewed… and today, we’ve announced that Strangeloop has developed the world’s first advanced front-end optimization solution for mobile devices.
To say that I’m excited would be an understatement. As anyone here can tell you, I’ve been haranguing our dev team about it every day for months — years, actually. They’ve politely (for the most part) tolerated me, and in the end delivered a product we’re all incredibly proud of.
Our marketing team has put together some excellent materials explaining what Mobile Site Optimizer is. I want to take a different approach and talk first about what Mobile Site Optimizer isn’t.
Mobile Site Optimizer is not:
- A tool that designs mobile-specific sites.
- A suite of desktop optimization best practices disguised under a shiny new label.
We’re not getting into the business of mobile site development.
Companies like Mobify are already in the business of designing slick, mobile-specific sites, and they do a great job. That’s not a business we want to get into. Mobile Site Optimizer will make m.domain.com sites faster, it’s true, but we also wanted to take on the challenge of making the full site faster on mobile browsers.
But why do we want to do this, when companies can just create a mobile site? Two reasons:
- Earlier this year, when we were digging into our beacon data (gathered over the course of hundreds of millions of transactions on our customers’ sites), we noticed something interesting: 1 out of every 3 people coming to sites via mobile devices chose to view the full site, when that option was available.
- “Mobile” is a huge umbrella that includes tablets. Anyone who’s been paying attention knows that tablets are set to dominate the personal PC marketplace. This year alone, 15% of PC sales were tablets, and that number is only going to rise. Tablet owners don’t want to see a scaled-down version of a site. They want the full-site experience. Yet tablets are subject to many of the same performance pains as smartphones: slow parsing speed (10-20x slower than desktop) and greater latency (up to 6x), not to mention the roughly 300ms delay caused by the need to convert touch to click events every time the user taps the screen.
So why not just slap a “Mobile” sticker on our desktop Site Optimizer?
We considered it. In fact, we tried it. We even got jealous when we saw others do it. After all, we knew that Site Optimizer offers an unparalleled suite of optimization treatments. And with hundreds of deployments under our belt, including some of the biggest companies and sites in the world, we knew Site Optimizer could scale securely.
But the more we dug into the mobile space, the more we realized that mobile environments pose some challenges we’d never faced with desktop. At the same time, we realized that mobile also offered us some pretty cool opportunities.
And at the end of the day, we just couldn’t resist tinkering around solely for the fun of it.
So we went for it. We bought tons of different devices, hooked them up to different networks, and started studying waterfalls (a geek’s paradise). And as it turns out, those challenges I mentioned above — parsing speed, latency, touch screens, and more — ended up spurring the development of eleven never-before-seen optimization treatments designed exclusively for mobile devices. Here are three of my favourites:
On the desktop, the browser cache is a key tool for delivering faster pages to repeat visitors. On mobile browsers, not only are caches notoriously tiny, they also get flushed all the time — even sometimes within a single visit — making them practically pointless. Mobile Site Optimizer gets around this by taking advantage of an HTML5 feature called Local Storage to configure storage (in mobile browsers that support HTML5) that is both persistent and reliable. The Mobile SuperCache goes far beyond just getting things into cache. It includes invalidation, prioritization of objects in cache, the ability to cache in-lined objects, and some additional cool secret sauce that you will need to call me to find out about.
Touch Event Conversion
As I mentioned above, every time a mobile user touches their screen, the device has to translate that touch event into a click event in real time. Typically, this takes about 300 ms, but it can take up to 0.5 seconds. Those touches add up. So we found a way to automatically convert all those clicks into touches, relieving the browser of the realtime overhead of conversion.
Dynamic Payload Decision Making
This feature is my pet. (Don’t tell the others.) We found ourselves really challenged by the idea that one of our standby Site Optimizer treatments, Predictive Browser Caching (aka Preloading), which delivers fantastic acceleration results on the desktop, might actually be a huge negative for mobile users. Predictive Browser Caching works by intelligently guessing where a user is likely to go next and preloading those page resources in the browser. This is great is you’re on a Wifi connection, with practically unlimited data, but what about when you’re out and about, roaming on your 3G or 4G network? Sending all those resources — some of which you may never see — could eat up a lot of your data plan.
Our challenge was to squeeze as much benefit as we could out of Preloading, without bottoming out people’s data plan. So we came up with Dynamic Payload Decision Making, which recognizes each user’s network connection in the moment, and makes sure that the user is served pages optimized according to their network limits. As one example, if you’re at home, you get a more aggressive version of Predictive Browser Caching. If you’re out on the street, you get only a trimmed-down core set of preloaded objects. You win both ways. This is just one of many dynamic payload decisions we make, but the goal is always to serve the end user’s best interests.
I could go on all day (really — ask anyone), but I’ll wrap things up here and direct you to discover our other eight treatments on our site. On top of the usual datasheet and whitepaper, we’ve also got some infographics that illustrate why mobile performance should be a big deal, as well as a pretty nifty video that shows how Mobile Site Optimizer works. Here’s a peek:
Before I sign off, I want to thank our lead developers on this project, as well as our CTO, Kent Alstad, and our VP of Product, Hooman Beheshti, for their incredible work over the past few months. I also want to tip my hat to the rest of the amazing team here at Strangeloop, who made this industry first possible.
*We didn’t entirely forsake Site Optimizer. We ran our desktop treatments through a battery of tests and kept those that delivered benefits to mobile.