Tuesday, May 6, 2014

Optimizing Upsells: How We Drove Millions of App Installs

It’s pretty tough to get people to download your app, and relying on App Store SEO can be unpredictable. However, one of the few levers you do have control over is the web traffic you already own. It’s now common practice to direct mobile web visitors into the App Store via some kind of promotion.

But ... what works the best? How much does the UI matter? How about the copy?

Optimizations like this are great opportunities to use A/B testing and data-driven decisions. Over the past year or so, we’ve run several experiments to see what works the best for us. Read on and see if you can guess the outcomes correctly!


Experiment 1: Straightforward vs. Promo

We had originally launched the Polyvore iPhone app with a straightforward “Get the app!” message and a screenshot of the editor. But, since then, the app has done consistently well in its downloads and ratings, and we wondered whether conveying that would help. We also knew that not all of our users are interested in the editor, so perhaps focusing on a different part of the app experience would be better.



L: Straightforward + editor message / R: Promo + shopping message

Wednesday, April 2, 2014

6 Simple Steps to Mobile-Friendly Email

Why Mobile Emails Matter

While our mobile website is becoming a larger and larger portion of our traffic, we still see more users on our desktop website. So when we pulled data around our emails (and we love data), we were surprised to learn that most of the emails we send are actually opened on mobile devices.

Just as our mobile site is designed and built to be a great experience on the phone, our emails needed the same special thought and treatment. It sucks to open an email on your phone with tiny text, or images that stretch off the page, or links that are too tiny to click on a touchscreen.


We set out to ensure our emails, whether opened on a desktop client or a mobile phone, were as delightful as the rest of our site. Along the way, we found many guides and blog posts on the Internet, but nothing that laid out the whole process. We also ran into several pitfalls during development that we had to work around, so we've gathered them here in hopes of saving you the pain of having to discover them yourself!

Tuesday, February 25, 2014

Squash Bugs While You Sleep: Automating JIRA

We've got issues. Oh boy, do we have issues. To keep Polyvore's databases filled with up-to-date information about the best and latest products you want to see and buy, we crawl hundreds of partner websites (with their permission, of course) and load feed files from dozens more. Every time one of those retailers changes their website design, our crawler configuration has to change. Every time one of those sites adds a "New Summer 2014 Collection" section, our crawler needs to know about it. And every time one of those stores has a website problem, our crawler has a problem. With hundreds of websites to crawl, we run into 5-10 errors a day, plus a bunch of warnings. Somebody should really fix all of those things...

Over the past couple of years, Polyvore's approach to issue tracking has evolved from countless hours of human labor into an indispensable tool that multiplies our attention tenfold. I'd like to walk you through our process, in the hopes that you see something that looks familiar and maybe even enlightening.

Wednesday, February 5, 2014

Instant MySQL Restores (with just this script and a ton of disk)

I don’t think that I need to sell you on the concept of backing up your data. But backup strategies and coverage vary widely from organization to organization. This blog post will detail Polyvore's approach to MySQL Backups.

We see 3 basic uses for database backups.

  • Recover from hardware failure
  • Recover from human or application error
  • Create a new replica or slave

Each of these use cases provides a different set of challenges, so we want a comprehensive policy that covers each use case.

Friday, September 20, 2013

Launching Home: The Good, The Bad, and The Ongoing

This week we unveiled Polyvore for your Home, a major milestone in our 6-year history! Even though Polyvore is the largest fashion community on the web, our original prototype started in interior design, so we’ve always built our technology as a platform, designed to scale beyond fashion. That said, some parts of launching home were easy, some were hard, and there’s still plenty more work to do!

The Easy Parts

Because we had planned ahead (really far ahead, in some cases), some things were easy to build on top of our existing infrastructure.

Getting products in

We needed to bootstrap the home category with enough great products for our users to play with. Our data pipeline starts with a large network of crawlers running on EC2 that pull products from popular retailers like Nordstrom, West Elm and Fab. This is when we retrieve brand, price, availability, and more. The same technology we use on fashion sites works just as well on home sites, so it was just a matter of creating new crawler scripts to pull products from home retailer sites and feed them into our existing infrastructure.

Tuesday, May 21, 2013

Under the Hood: How we Mask our Images

Polyvore users create over 3 million sets every month, mixing and matching their favorite products to express their style. They clip in images from all over the web, like this teal T-shirt from nordstrom.com


As you can see, the shirt image has a light gray background that creates an eyesore when layered with other items in a set:


How do we strip this background away in order to achieve a cleaner look? More importantly, how can we do it for not just this T-shirt, but for any of the 2.2 million images our users clip in every month?

Monday, March 4, 2013

Polyvore Style Tips: CSS, Javascript and HTML

Shhhh! Don't tell anyone, but the engineers at Polyvore are ... nerds. Most people have the misconception that Polyvore is full of fashion models and editors, but the truth is that Polyvore's a technology company wrapped in a Gucci dress.

Our core web technology enables people to mix and match products from around the web to create works of art or whimsy.
Our front ends have always been heavy in HTML, JS, and CSS. And over the years, we've learned a ton in building those features and trying to keep up with all the latest and greatest HTML5 features in modern browsers. I wanted to share some of our favourite tricks.

Unless otherwise noted, these all work on the latest couple Safari, Chrome, and FireFox releases (obviously) but also on IE8 and higher. These are Polyvore's supported browsers and it's a decision based on traffic -- 5% or higher. YMMV if you are committed to supporting older versions.