Skip to content
The Product Guys
All teardowns
SwiggyCraft6 min read

Ordering dinner in an Indian city

Address chaos, small baskets and a live map, handled at scale.

The surface
The order path in the app: location selection, the restaurant list, the menu with veg filtering, the cart, and the tracking screen with its live map.
What the user wants
I am hungry, I have twenty minutes, and I want food from somewhere that will actually deliver to my flat.
01

Pinning the location

The app asks for a location early, combining device location with a map pin and a saved address with landmark style detail fields.

Design for the real world input

Indian addresses frequently do not resolve cleanly through geocoding, and a wrong pin ruins the order after the money is spent. Asking for a pin plus a human readable landmark captures both the machine's answer and the courier's. Fixing this once at the start prevents a failure that cannot be recovered later.

02

The list sorted by deliverability

The restaurant list is filtered to places that deliver to the selected location, with delivery time shown on each card, and closed or out of range restaurants deprioritised.

Remove impossible choices

Every restaurant shown that cannot deliver is a small betrayal discovered after the user has built an appetite for it. Filtering on serviceability first makes the whole list trustworthy. The delivery time on the card lets hunger, which is the real sorting criterion, do the ranking.

03

The vegetarian marker

Items carry the standard green and red Indian food marks, and the app offers a pure vegetarian mode that filters the catalogue.

Localisation as a first class constraint

For a large share of users this is not a preference filter, it is a hard requirement with religious weight, and getting it wrong is not a minor bug. Building it into the catalogue and offering a persistent mode respects that rather than treating it as a dietary tag. A global template would have shipped this as a checkbox in settings.

04

The cart and its thresholds

The cart shows the item total with delivery and other charges applied at the summary, and surfaces offers and coupon entry before payment.

Mental accounting with a nudge: A change to how choices are presented that shifts behaviour without removing any option.

Separating food cost from service cost matches how users think about a meal budget. Coupons and free delivery thresholds then give the total a lever the user can pull, which converts annoyance into action. The same structure is what lets fees accumulate quietly, which is the trade off.

05

Tracking with the live map

After ordering, the app shows preparation and pickup stages and then a live courier position on a map, with the courier reachable by phone.

Operational transparency

Visible work raises satisfaction with a wait even when nothing about the wait changes. The phone number matters more here than in most markets, because last mile navigation frequently needs a spoken instruction. The map buys patience and the call buys accuracy.

06

Rating tied to the specific order

After delivery the app asks for a rating of the food and the delivery separately, attached to that order.

Attribute feedback to the right party

A single star rating blurs a cold delivery and a bad dish into one unusable number. Splitting the rating lets the restaurant and the logistics network each be measured on what they control. It also gives the user a place to put a specific complaint, which is what stops it becoming a general one.

The parts a copied template gets wrong

1Pinning a location, not typing anaddressAddresses are landmark-relative andoften unstructured, so a validatedaddress form fails before the firstorder.2The vegetarian mark, treated as ahard constraintNot a dietary tag among many. Gettingthis wrong is not an inconvenience, itis a breach of trust.3Cart thresholds and fees readagainst local pricesA minimum that is trivial in onemarket is the whole order value inanother.
The list, the cart and the tracking map port from any market with small changes. The two below do not, and they are the ones that decide whether the product is usable at all. Localisation is not the same job as translation.

What not to copy

  • Charges assemble across delivery fee, platform fee, packaging, surge during rain and taxes, with a platform fee that has been raised repeatedly. A headline free delivery banner sitting above that stack is drip pricing whatever the individual lines say.
  • Menu prices on the app commonly exceed the restaurant's in store prices, and that difference never appears as a line item. It is the largest hidden charge in the flow.
  • Subscription and coupon messaging is dense and frequently occupies the cart screen at the moment of decision. Offers that expire in minutes inside an app the user opened because they were hungry are urgency stacked on urgency.
  • Courier tracking is presented as precision while batched multi drop routes make the estimate soft. Showing a dot moving away from the user with no explanation is worse than showing a stage label.

The takeaway

Localisation is not translation. The address field and the veg mark are the parts of this product a copy pasted global template would have got wrong.

Finished the teardown? Bank it and the day counts toward your run.

Where the principles come from

  • The Design of Everyday Things, Don Norman
  • The Psychology of Waiting Lines, David H. Maister
  • Mental Accounting and Consumer Choice, Richard H. Thaler

Written from public behaviour of the product, not from inside it. Interfaces change often, so treat the flow described here as of the time of writing and check the live product before quoting it.