Building an app that guides you to great wines at your favorites stores, based on friends and tastemakers you follow

UI, UX, Visual Design, Project Lead, Backend Logic

Wine is intimidating!

I love wine and keep up with the industry. But I was tired of doing the tedious research of finding high value wines. I wanted an app that did it for me. And I wanted it to work at the places I shop—Trader Joes, Costco, Whole Foods. As I talked to more and more wine drinkers, I realized everyone is intimidated buying wine.


…I set out to solve the problem with an ambitious mix of technology, social/interest graphing and data aggregation. The idea was to put tastemakers (friends, chefs, wine experts) and data (reviews, price comps) into the store with shoppers. In a nutshell, I set out to build an interest graph for grocery store wines.

Question #1: What data affects wine shoppers’ choices?

The first step was understanding users actual pain points. From interviews and surprisingly thorough industry research, we discovered that people select wines based on the following attributes, listed from highest to lowest priority:

price > type > suggestion > varietal > producer > label > region > other (vintage,  sub-region, etc.)

People can find points of confusion within every attribute, but this was the order in which we needed to tackle those confusions. Later, you’ll see how this hierarchy dictated the UX funnel we ultimately built, i.e. how to most quickly reveal this prioritized data to shoppers in real time.

Question #2: What’s wrong with existing solutions?

We analyzed the competition and talked to their users. We identified the specific limitations vis a vis our users’ desires. There appeared to be a hole in the market:

Overriding product theme/takeaway:

Users should feel they are shopping with trusted advisors only a click away

Ready to build the product!

But first… (though, in retrospect, it shouldn’t have been!)

Building a seriously complex back end!

Building the back end from scratch was incredibly complex. We had to:

  • Track tens of thousands of distinct wines across thousands of retailers, each of which has a unique price.
  • Link users (follow/unfollow) in a social/interest graph.
  • Associate user-generated content with each distinct wine.
  • Associate every wine’s geo-location with users’ so they can see nearest availability and price comps.
  • Standardize incoming wine records around complex wine semantics.
    Incorporate intricate taxonomies and filters around hundreds of wine, user, store, price and geographical variables.

Admin GUI’s are vital product designs, too!

There were dozens and dozens to build. Since it was going directly into Bootstrap, I used only Balsamiq for admin design, along with logic descriptions and spreadsheets to convey requirements to engineering.

Solving the tedious insanity of wine semantics!

New wines entering the system (by the thousands and constantly) need to be matched with their existing records or else a new wine record needs to be created. The problem is that wines are constant written differently. E.g. “Chateau Thomas Duhamel Reserve Cuvee 2016” might be written as 2016 Cht. DuHamel Reserve”. And that’s just English language wines. European wines get exceptionally difficult. So we had to devise the logic for and program a fuzzy matching system that recognized wines at tolerances we could bear and threw the remainder to a manual check queue.

Designing the User-Facing Product

After numerous interviews and pre-prototype design tests with users, we identified three user priorities that our app design needed to emphasize.

  1. Speed (how can I quickly find a great wine in my budget?)
  2. Discovery (what wines might I like?)
  3. Personalization (what do people I trust think?)

I set out designing the v.1 product in a back-and-forth dance between Balsamic (I’m a huge fan) for faster iteration, Photoshop for pixel perfect screens, and the dev team (Obj-C, RoR, iOS) for implementation.

Tabs: sometimes you can’t live without ’em!

Ultimately, a 3-tab structure felt just simple enough while still emphasizing those key desires along the user’s journey: Location, Discovery and Personalization:

One layer deeper, the user finds more ways to quickly discover what their favorite tastemakers recommend.

With so much back end + feature complexity and meager resources, quick design iterations and tests were regrettably challenging.

Still, we arrived at clean, user-friendly screens that users liked and understood.


We launched the product for iOS in Seattle and Los Angeles. Initial feedback was positive and users were pulling out the app in-store.

We sensed product market fit. We launched a Blind Tasting feature (very cool, actually) which made for great tasting events and discovery (is wine you love $100 or $10…?).

Content you can drink!

Discovery content was key to our marketing and dissemination strategy. A mix of education and recommendation. For example, we’d redistribute wine content from national publications and enhance it by giving readers the ability to actually find the wines in nearby stores.

Linking wine content to local shopping was innovative and people liked it! And plugging the content into our system was easy. But keeping up with the wine inventories while trying to iterate a complex app without resources was not…

Here’s a 10 min demo of the app:

Cash-Strapped Uh Oh…!

Ultimately we couldn’t keep up with the pace of development required to learn quickly and gain real traction. We needed more resources. But we remain bullish on the interest graph for grocery. And an evolved product vision sits on our drawing board.

Happy to chat about it at!


Back to home