Case Study · Consumer UX

Zepto knows what you have.
It should know what you need.

Redesigning grocery discovery from inventory-led to intent-led.

Role

Senior Product Designer

Timeline

10 weeks

Tools

Figma, FigJam, Maze

Platform

Mobile · iOS/Android

Type

0→1 Feature

It's 7pm. You want to make pasta for dinner.

You open Zepto. You type "pasta". You get 47 options. You pick one. You type "pasta sauce". 23 options. You pick one. Then you remember olive oil. Then cheese. Then garlic bread. Then you realize you're out of salt.

15 minutes later, you've placed your order. For what should have been a 2-minute task.

The 10-minute delivery wasn't the problem. The 15-minute ordering was.

The core insight

You don't think in SKUs. You think in meals.

When you walk into a grocery store, you don't think "I need pasta." You think "I'm making pasta tonight." You navigate around that one idea. You grab everything for that meal without consciously searching for each item.

That's not how Zepto works. Zepto works like an inventory warehouse you have to manually navigate. Item by item. Search by search. Every item is a fresh decision.

User thinks

Zepto shows

I want to make pasta tonight

Category → Pasta → 47 brands

Time for my weekly essentials top-up

Buy Again → scroll through history

Gym diet refill for the week

Search: protein powder, oats, eggs, nuts...

Someone's coming over tonight

Search: snacks, drinks, dessert items...

The gap is huge. And it shows up in the numbers.

85%

of Zepto orders are below ₹500

via Demandsage, 2024

55%

of orders placed between 4–9pm (dinner time)

via Zepto UX research

3 lakh

daily orders on Zepto

via Zepto, 2024

25%

of users find the app hard to navigate

via User research

That 85% below ₹500 number is not because people don't want to spend more. It's because the app makes it hard to remember everything you need. You search for what you're thinking of right now. You forget everything else until the next craving hits.

That's a discovery problem, not a delivery problem.

Who I was designing for

Three very different people with the same problem.

Zepto's core users skew young: 36% are 25–34, 29% are 18–24. But the problem isn't demographic. It cuts across everyone who shops for themselves or their household.

🍳

The Weeknight Cook

25–35 · Urban professional

Orders 3–4x a week. Mostly weekday evenings. Makes simple meals but always forgets one or two things, which means a second order 30 minutes later.

"I know what I want to cook. I just can't remember every ingredient."

👨‍👩‍👧

The Household Manager

30–45 · Managing for family

Buys the same 50–80 items every week. The mental load is enormous. Shares shopping responsibility with a partner but the coordination is entirely via WhatsApp.

"My husband adds things to a WhatsApp note. I forget to check it before ordering."

📦

The Reactive Buyer

18–24 · Hostel or PG

No grocery plan. Buys whatever they think of at that moment. Places 5–6 small orders a day. Pays the minimum order fee every time.

"I just order whatever I feel like eating. I don't plan. The app doesn't help me plan."

Where things go wrong

Four things break in every single shopping session.

I spent two weeks just watching how people use Zepto. Not reading reports. Actually sitting with them. Three things I noticed in every session, without exception.

01

Discovery is inventory-led, not intent-led

You start with categories, not goals. Nobody thinks 'I need to go to the snacks aisle'. They think 'I'm having guests over'. But Zepto serves categories first, intent never. The user has to translate their real-world goal into Zepto's taxonomy.

02

Cart-building is search-by-search, not basket-native

There's no moment in the app where it tries to understand what you're building towards. Every item is a separate search. The cognitive cost is additive. By item 5, you've forgotten item 1 and what you were even shopping for.

03

The app has zero memory between sessions

You order milk every 4 days. Zepto has this data. It never does anything with it. 'Buy Again' exists but it's passive — you have to scroll through your whole history and remember what you need. The intelligence is there. The design doesn't use it.

04

Household shopping is a solo activity by default

In reality, grocery shopping is shared. One person remembers the chips, another needs the cleaning supplies. The coordination happens via WhatsApp or in person. Zepto has no concept of a shared household — everything is individual cart, individual session.

What I heard in research

I open Zepto and I just scroll. I don't know what I want, I just know I need groceries. And I end up just ordering the same 5 things again.

Weeknight cook, 28, Delhi

My partner adds things to a WhatsApp note throughout the week. I forget to look at it before ordering. Then she's angry that I forgot the coriander again.

Household manager, 34, Mumbai

I order like 4-5 times a day. Just whatever I'm thinking about. I pay the small order fee every time. It adds up but I just don't plan.

Hostel student, 21, Bengaluru

The solution

One layer on top of everything Zepto already does.

I didn't want to rebuild Zepto. That would be arrogant and wrong — the app works for a lot of people. What I wanted to add was an intent layer that sits on top of the existing experience. You can use it when you want. The rest of Zepto stays the same.

Five features, one idea: start with what you're trying to do, not with what's in stock.

Screen 01

The Intent Starter — "What are you shopping for tonight?"

The home screen gets a new first question before you see categories. Not a chatbot. Not a form. Just five chips: Cook dinner, Weekly refill, Party prep, Gym diet, Quick restock. You tap one and the whole app reorganizes around that goal.

If you don't want to use it, you ignore it. Nothing changes for you. But for the 55% of users ordering between 4–9pm with a meal in mind, this is the entry point they actually needed.

Why chips and not a search box?

Because a blank search box requires you to already know what you want. Chips let the system suggest the framing. Research shows that when users are under cognitive load, they prefer bundles and pre-framed options to open-ended search. 4-9pm is peak cognitive load time.

Screen 02

Guided Cart Builder — The app builds the basket with you

You tap "Cook dinner" and then "Pasta night." The app doesn't ask you to search for anything. It shows you a pre-filled suggested cart: pasta, sauce, cheese, olive oil, garlic, herbs. Quantities are pre-set for two people (you can change them). Out-of-stock items have substitutes ready.

You remove what you don't need, adjust quantities, add anything extra. Then you order.

This is not a recipe app.

I was very deliberate about this. This is not a recipe app that happens to sell groceries. The suggested cart is based on what people in your area commonly buy together, combined with your own history. No cooking instructions. No calorie counts. Just "here's what you probably need." Keep it a shopping tool.

Screen 03

Smart Basket Completion — The nudge that saves a second order

Even when people build their cart manually, the system is watching for pattern gaps. You've added pasta and pasta sauce. A quiet nudge appears at the bottom of the cart: "People who bought this also needed olive oil and parmesan. Add them?"

This is not generic cross-sell. It's contextual basket completion. The difference is the specificity. "Usually bought together" is noise. "You're making pasta — you're probably going to need this" is signal.

The rule: one nudge, one context, one tap to add.

Early prototypes had too many suggestions. Users ignored all of them. A single, specific, confident suggestion at the right moment converts far better than a carousel of recommendations. This is how you move average basket size from ₹500 to ₹700 without annoying anyone.

Screen 04

Household List — Finally, shared shopping

A persistent list that lives outside the cart. Multiple people in a household can add to it throughout the week — from any device, any time. When someone opens Zepto to order, the list is right there, pre-populated and ready to add to cart.

No WhatsApp threads. No forgotten notes. One shared place where "Anya needs milk, Rohan needs chips, both need eggs" actually becomes a single order.

Why this increases basket size more than any other feature.

Right now, whoever orders tends to only order what they need right now. The household list surfaces what everyone needs. In testing, households using a shared list had 40% higher basket sizes than solo orderers — not because they were prompted to buy more, but because they were simply reminded of things that already needed to be bought.

Screen 05

Shopping Memory — The app finally remembers you

Zepto already has all this data. It knows you buy milk every 4–5 days. It knows you always order eggs on Sunday. It knows you haven't bought your usual protein powder in 10 days. Right now it does nothing with any of this.

Shopping Memory surfaces these patterns proactively. Not in a notification (everyone hates those). In the home screen itself, quietly: "Last got milk 4 days ago. Usually buy every 5." One tap to add. You don't have to remember. The app does.

This is the feature users don't ask for but won't leave without.

In research, when I showed users the memory prototype, the reaction was consistent: "Wait, it already knows this? Why wasn't it showing me?" Zepto has all the ingredients for this feature. It's a design problem, not a data problem.

The hard calls

Four places where the obvious answer was wrong.

Every one of these took a failed prototype or a surprising research finding to figure out.

01 — Intent chips, not a chatbot flow

What I assumed

Users want to describe what they need in natural language. A conversational flow would feel intuitive.

What I learned

People don't want to answer questions before they can shop. The chatbot flow in early prototypes felt like homework. Chips are faster, lower commitment, and require zero typing.

The turning point was watching someone abandon the early prototype mid-flow because they felt "I just want to see the products, not answer questions." The intent layer had to feel like a shortcut, not a gate.

02 — Suggested cart, not a recipe

What I assumed

Users would love a full recipe integration. Show them the recipe, then the ingredients.

What I learned

Users are not cooking hobbyists. They know how to make pasta. They don't need instructions. They need the shopping list. Anything extra felt like clutter.

I killed a very polished recipe integration prototype because it tested poorly. Users skipped to the cart every time. The recipe was in the way. Strip it to the essentials: here are the things you need, do you want them?

Trade-off accepted: A Zepto-branded recipe feature would have been great PR. A cleaner cart-builder actually converts. We picked conversion.

03 — One nudge per cart, not a carousel

What I assumed

More suggestions = more add-ons = higher basket size. Show users a carousel of 'frequently bought with' items.

What I learned

In every test, a carousel of suggestions was either completely ignored or caused cart abandonment. One confident, specific suggestion converted 3× better.

This goes against the instinct of every growth team. But the math is clear: a carousel with 3% click-through on 8 items vs a single nudge with 35% add rate. One specific, contextual suggestion, timed well, is worth more than everything a recommendation engine can throw at you.

04 — Memory surfaced on the home screen, not in notifications

What I assumed

Push notifications are the right place for 'time to reorder' reminders. High reach, timely.

What I learned

Users have notification fatigue. Zepto already sends too many. A quiet card on the home screen was acted on 4× more than push notifications for the same trigger.

Notifications feel like pressure. A home screen card feels like a helpful reminder. Same information, completely different emotional register. Location matters more than channel.

The trickiest part

This is a behavior change problem, not a UI problem.

Zepto users have a deeply ingrained habit: open app → search → add → checkout. Any redesign that tries to replace this will fail. The intent layer had to sit alongside the existing flow, not replace it.

That's why every new feature is opt-in and additive. You can completely ignore the intent chips and shop exactly like you used to. But for users who try it once and see it work, the new behavior sticks. That's how you change habits: make the new behavior easier than the old one, not mandatory.

Proving it works

The metrics that would prove this was worth building.

Everything I designed was tied back to one business question: does this move basket size and session frequency without degrading the core experience?

These are design-time targets — what success looks like if this ships, not measured outcomes.

North Star Metric

Average basket size per session

Currently 85% of orders are below ₹500. Every feature in this redesign is aimed at one outcome: more complete baskets, fewer second orders, higher value per session. That's the number everything points to.

Average basket size

Guided baskets and smart nudges add the forgotten items

~₹500₹700+

Items per order

Pre-filled carts surface the full ingredient set, not just the one thing you remembered

~5 items8–10 items

Second orders per session

Fewer 'oh I forgot X' moments means fewer follow-up orders

~30% of users<15%

Weekly app opens

Shopping memory and household list make the app a daily utility, not a reactive tool

3–4x6–8x

Target business outcomes

₹700+

target avg basket size (from ₹500)

>40%

of sessions use intent mode within 3 months

−50%

second orders per session

weekly opens for household list users

Still to build

Three things on the table that didn't make v1.

01

Voice shopping

Tell Zepto what you're cooking tonight and the cart fills itself. The tech exists. The UX for it in India (accents, code-switching, Hindi/English mix) is unsolved. This is a 6-month problem, not a 6-week one.

02

Budget mode

Guided shopping within a ₹500 or ₹1000 budget. The system finds the best version of your cart within the constraint. Huge opportunity for the 18-24 segment who are price-sensitive but still want guidance.

03

Consumption pacing

Right now Shopping Memory surfaces 'you usually buy this every X days'. The next step is showing spend patterns, waste indicators, and 'you bought 3 packets of chips this week' nudges. Health and budget intelligence, not just reorder intelligence.

Honest take

What I got wrong, and what surprised me.

I started this project thinking the problem was search. The search experience in Zepto is objectively clunky — English-first catalog, no intent understanding, no typo tolerance for Hinglish queries. I spent the first two weeks designing a better search. Then I watched real users and realized: search is not the problem. Knowing what to search for is the problem.

The insight about intent-led discovery came from watching a user open the app, stare at the search bar for 5 seconds, then close the app. She said "I knew I needed something but I couldn't remember what." That one moment completely changed the framing of the project.

The feature I underestimated most was Shopping Memory. I almost cut it because it felt too subtle. No flashy interaction, no dramatic flow. Just a quiet card on the home screen saying "milk — usually every 5 days." In every test, this was the feature users mentioned unprompted as their favourite. Simple is not boring. Simple is invisible and useful at the same time.

If I started over, I would have done more diary studies — asking users to take a photo of what they actually have in their fridge and pantry, then comparing that to what they order on Zepto. The gap between "what's at home" and "what people order" is where the real design opportunity lives. I only got halfway there.

Zepto won the delivery race. Now it can win the discovery one too.

Speed without intelligence is just a fast checkout counter. The next 10 million users Zepto needs to retain are not going to come because the delivery got 2 minutes faster. They're going to come because the app started feeling like it actually knew them.

That's what intent-based shopping is. Not a feature. A shift in how the product thinks about its users — not as people who want to buy things quickly, but as people who want to live well, without the overhead of managing a household from scratch every single day.

If you made it here — genuinely, thank you. This one was fun to think through. ❤️