How often have you clicked a link, and then bounced because the page took too long to load? Basic common sense and studies like Kissmetrics’ report, are proving that website speed is a huge factor in determining user experience. By 4 seconds, 25% of your users have already bounced, with more navigating away with each additional second.
We know this. And so do the countless companies that have taken off to help you solve this problem. We have Cloudfront, Fastly, MaxCDN and more CDNs to cache assets near users for faster delivery. We have tools like ImageMagick to optimize images so they are lighter and can be loaded faster. We have tools like Pingdom’s speed test to ensure your website is fast enough – and you’re not losing customers to slow load times. Asset delivery is a hot market.
However, there is a counterpart to download speed that is often neglected in the optimization hustle: upload speed.
Incorporating user generated content into websites has been a massively growing trend. From adding our own profile pictures to our accounts, to adding pictures and images into comments and reviews, to uploading photos to share, user generated content is all over the web. Every person with a smartphone is a content creator, and every owner of a web application wants to engage their users. Although as developers we may be able to deliver this content quickly, we tend to upload this content slowly.
At Filestack, we ran a series of tests to measure average upload speed for different file sizes with different ingestion points and storage locations. Small files across continents frequently took around 8 seconds to load, and larger files often took up to 60 seconds to upload. Can you imagine if your website took up to 60 seconds to download?! Only your most loyal users would hold out long enough to see the content… And even then it feels almost cruel of you to force them to wait so long.
Okay, now imagine your business depends on customers successfully uploading images. Perhaps you run an ecommerce market like eBay where your users can buy and sell items. Or you own an online print shop, like Snapfish. Or some kind of productivity app, like Slack, where users are constantly uploading and sharing files with each other to get their work done. For each additional second it takes a user to upload a file, your customers are bouncing, and you are missing out on a lot of potential revenue.
So why don’t we have 10+ reverse-CDN companies competing for the upload market? Or upload speed tests on every corner of the web? Or countless upload optimization tools advertising for our attention? Why do we insist our websites need to download in less than 4 seconds, but we are fine if an upload takes 40 seconds?
Well, for one thing, file uploads are not easy to speed up. To build super fast file upload infrastructure, you have to build systems to chunk large files, to resume and retry failed uploads, to handle poor network conditions, to upload asynchronously, etc. You don’t want to sacrifice speed for reliability, or vice versa. What may seem simple at first, scales in difficulty as you add functionality for multi-file uploads, large files (looking at you videos), and mobile networks.
However, at Filestack, we decided that this was unfair for upload-based applications. We want it to be just as easy for you to upload a file fast as it is for you to deliver a file fast. So, we built the Filestack Content Ingestion Network (CIN) that acts as a reverse CDN for uploads. Like how a CDN utilizes a globally distributed network of delivery points-of-presence (POPs) to cache and deliver assets quickly, Filestack utilizes a globally distributed network of ingestion POPs that provide regional storage for assets uploaded nearest them. The Filestack CIN regularly increases upload speed by 10x, and any developer harness the upload speed provided by the CIN via API integration.
Maybe one day file upload speed will be as widely feared and respected as download speed. When that glorious day comes, we’ll never have to look at a loading screen again. Until then, it’s up to all of us to improve our own applications.
Read More →