The Customer
With over 2.2 billion dollars pledged by 10 million people, Kickstarter is the largest worldwide platform for funding creative projects. Project creators rely heavily on high-resolution images, animated GIFs, and video to promote their campaigns, uploading over 10,000 files daily from across the globe, all of which are managed with imgix.
The Challenge
Kickstarter’s image catalog requires image management tools that can continue to scale—they serve over 1.4 billion images each month, and because campaigns live on after completion, that number will only continue to grow. They also need to take the many image formats and sizes that users upload, normalize them into the right set of features and sizes based on the context and design, and serve them out in optimized formats for fast loading.
Ingesting this level and complexity of content requires adjustments to the image workflow, especially when attempting to provide a good experience for creators. According to Principal Engineer Lance Ivy,
Creating thumbnails of user-uploaded images in real time led to timeouts and server memory exhaustion. It also created design friction around new image sizes, and we often delivered the wrong size to avoid regenerating images.
To solve these issues, Kickstarter decided to migrate their legacy asset system. One sticking point was the need to regenerate a new set of image sizes across the entire image catalog. However, they realized that a dynamic image manipulation service could make the problem disappear by allowing them to output multiple sizes from a single Origin Image instead of pre-generating them when the user uploads.
“We pulled together a list of 10 options, and imgix ended up at the top based on its combination of features and clear documentation. It was easy to imagine how imgix would fit in with minimal complexity.”
They also wanted to improve the loading speed of animated GIFs, which are usually large and difficult to process, and load a static image first to avoid showing a blank space while the animation loaded.
The Solution
Kickstarter’s first task was to streamline the image pipeline, and adding imgix in proved as simple as expected. The initial integration took a couple of days, including refactoring code to switch between the old and new systems for testing. This allowed them to carefully move traffic over to imgix, measure the results, and iterate, which they did over a few months.
Once on the new system, the team was able to rapidly build out the animated GIF feature. As Ivy explained:
“This feature might not have happened if we had to regenerate static and animated versions of every GIF in our back catalog. The engineering savings for that has balanced out the up-front investment.”
The Results
Kickstarter’s heavy use of high-resolution images, video, and animated GIFs to drive thousands of simultaneous campaigns requires image processing that can scale with their worldwide reach. As they look toward improving the mobile-friendliness of the site, Ivy notes that using imgix’s leading-edge features will help them go the last mile toward full responsive design, so they can serve exact sizes for every device, image type, and resolution without JavaScript.
“Some responsive designs just scale the same full-size image down into a smaller space, leading to a poor mobile experience. The future will be in taking advantage of Client Hints and srcset, both of which imgix currently supports.”
Finally, in addition to giving their customers a better experience and their development team more power and flexibility, using imgix also gives Kickstarter more business data around their image bandwidth. This was previously rolled up into their CDN bill. As Ivy put it, “We have more data now! Being able to see bandwidth usage by asset type gives us a number to optimize.”
With over 2 billion images already being served through imgix every day, Kickstarter’s investment in their image processing pipeline is sure to animate future designs and features.