Craving Proposal is a novel design that allows groups of people do restaurant discovery together. 


First Problem: Agreement

Firstly, let's consider the following conversation: 

A: Hey, do you want to go out and eat? 

B: Sure, where are we going? 

Next, if A responds, "How about restaurant 123?" and if B is in favor of that restaurant, this conversation can end. They go to the restaurant and eat happily ever after. 

However, this work flow works only in a familiar area and two people are adjacent to each other. 

In the following scenarios, this conversation will become longer:

  • Friends live in different areas of the city 
  • Friends visiting a new city 

Now imagine when a few friends travel to a new city, the conversation will probably be: 

A: Are you hungry,  what do you want to eat? 

B: Yup, I am OK with anything. (don't we all hate that friend who is OK with everything?) 

A: How about seafood? 

C: Hey, you know I am allergy to fish, right? 

A: Ah, sorry, I forgot about it. How about Steak? 

B: Ugh, I just had steak last week. 

A: Alright, I am going to find some places interesting and share with you folks. 

You see, people have preference. Each person has something he or she wants to eat, does not want to eat, or cannot eat. When looking for a place as a group, each member in the group would like to know what they can eat in the restaurant. 

Of course, I will not deny that there are other cases all friends come to an immediate agreement when they see the first restaurant in front of them. 

if everyone just goes to the restaurant I pick that'd be great

Unfortunately, when an agreement fails to establish at the beginning, it usually takes a long time to finalize. 

Second problem: communication

The next problem is about how to communicate opinions. 

This problem is applied less in on-the-road scenario, instead, it is applied in scenarios when friends are sitting in front of their computers while discussing where to dine out. 

Based on years of personal observation (actually, just the way I remember), group dining out is always initiated by a single person. Today at least, one person will start sending message (via SMS or any messaging software) or emails to invite others. A typical IM (internet messaging) conversation could be: 

A: Lunch?

B: Sure, where? 

A: How about 123? 

B: Let me ping C. 

From here, if multiple people can establish the agreement on the first choice, the conversation ends and they go eat lunch happily ever after. Otherwise, a conversation could become: 

A: Lunch?

B: Sure, where?

A: How about this one? (not a valid URL, but represent a choice found online) 

B: Interesting. Have you tried this one? 

A: Let me ping C and D. 

C: Guys, let's try this one.

D: I tried last month, and I don't really like it, even though I don't mind giving it another chance. I will be interested in this one: 

This communication is dragging and inconvenient, because first, it involves multiple links. Each person has to open the page and read everything. Second, they have to talk into it until an agreement is established. 

strong opinion in where to eat

Craving Proposal

Craving proposal is a design that allows you and your friends share a list of options, cast a vote, and discuss it on a single page. 

A design in Ourcraving looks like below: 

Craving Proposal Design 

By default, a user does not have any proposal. When browsing a dish, there is a button to add a dish to the proposal, which will immediately create a new proposal if none exists, but add to the latest proposal, or the user can manually pick which proposal the dish is added to.

add dish to proposal 

The idea is that the dish you add, will add the restaurant to your proposal. However, when you open the proposal, you are seeing the dish you were looking at, for you. 

You can add multiple dishes to the proposal, in another word, each dish has a corresponding restaurant. The proposal has a unique URL so you can just send one link to all your friends. 

Here is something more interesting. 

When your friends open the proposal URL. They might not see the dish you were looking at. They will see the restaurant options. But they could see a different dish, depending on their own preference. By default, if they never setup preference, they probably see a random dish. If there is enough data, the proposal page will display the dish a user is most likely interested at. Therefore, even the restaurant options are all the same, different user sees different content from it based on each's craving habits. 

Finally, users can cast a vote to the option. Other users should be able to see them immediately. Unfortunately it is not coded in current version of OurCraving. Using some technique like SignleR, I believe it is totally possible to achieve. 


This article introduces a new experience in restaurant discovery for groups of users. It supports:

  1. Using one single URL to communicate with multiple options;
  2. Different users see different content from the same list of options; 
  3. Voting system for decision making 

I believe that this design, if fully implemented, will be able to effectively help groups to find a place to dine out. What do you think of it?