E-commerce (Online Grocery)

Subscription & Retention

Designing a Recurring Grocery Delivery Experience for Instacart

E-commerce (Online Grocery)

Subscription & Retention


Role

Timeline

Tools

•  UX Research

  • UI/UX Design

  • Prototyping

  • Usability Testing

6 weeks

Figma, Maze for Usability Testing

Overview

Online grocery shopping has become part of everyday life. What started as a convenience—especially during COVID—has now turned into a habit.

While using Instacart myself, I noticed something frustrating:
Every time I needed essentials, I found myself repeating the exact same process—searching, adding items, checking out—over and over again.

It raised a simple question:

Why does something so routine still require so much manual effort?

This wasn’t just a personal inconvenience—it pointed to a broader opportunity:

  • Users regularly buy the same items

  • The platform doesn’t support long-term planning

  • Repetition creates friction in an otherwise convenient experience

Framing the Opportunity

Instead of jumping straight into solutions, I wanted to understand:

  • Is this a common behavior?

  • Do users actually want automation?

  • What would make them trust a system to order for them?

This led me to frame the core challenge:

How might we reduce the effort of repeat grocery shopping while giving users control and flexibility?

Understanding the Landscape

I began by looking at competing platforms.

Most grocery apps perform well on:

  • Speed and delivery

  • Product variety

  • Interface usability

But one gap stood out:

👉 Very few platforms offer a truly flexible recurring order experience



Some had limited subscription models, but they lacked:

  • Customization

  • Control over scheduling

  • Transparency in how orders are handled

This reinforced the idea that automation could be a strong differentiator—if done right.

Listening to Users

To validate this direction, I conducted 1:1 interviews with five frequent grocery app users.

Instead of pitching an idea, I focused on understanding their real habits:

  • How they plan groceries

  • What frustrates them about reordering

  • Whether they trust automation for essentials

Most users reacted positively to the idea of recurring orders, but their responses quickly revealed tension points.

“What if I want to change something last minute?”
“Will I be locked into a schedule?”
“What happens if something is out of stock?”

This was a turning point.

It became clear that users didn’t just want automation—they wanted automation with flexibility and control.

Turning insights into direction

From the research, I synthesized key design requirements that would guide the experience:

Instead of listing them as features, I translated them into experience principles:

  • Users must always be able to modify or skip scheduled orders

  • The system must handle uncertainty like stock availability gracefully

  • Users should receive clear visibility before any order is placed

Alongside this, another opportunity emerged:
users were already mentally grouping groceries in their heads—but the app wasn’t supporting that behavior.

This led to the idea of introducing a personal grocery list system with categories, making repeat ordering more intentional and organized.

Bringing the user to life

To better understand who I was designing for, I created a persona based on research insights.

This helped me anchor decisions around a real behaviour pattern rather than abstract users.


Meet Haylie—a busy working professional who relies on grocery delivery weekly. She values convenience but dislikes losing control over her orders.


Mapping the experience

With Haylie in mind, I mapped her end-to-end journey—from realizing she needs groceries to completing her order.

This step helped me identify emotional highs and friction points across the flow.



What stood out was a clear pattern:

  • Planning groceries was scattered

  • Reordering required memory

  • There was no “system” supporting repetition

This reinforced the need for structure, not just a feature.

Defining the product direction

To align both user needs and business goals, I mapped them together using a Venn diagram.

This helped clarify that both sides were actually aligned on one key objective:

👉 Reduce friction in repeat purchases to increase retention and engagement



This became the foundation of the solution direction.

Structuring the experience

Before designing screens, I stepped back and looked at the existing Instacart structure.

Since this was not a redesign, but an addition, I focused on integration.

I created an updated site map to identify where new functionality would naturally live within the existing experience.



From there, I defined user flows for key actions:

  • Creating a grocery list

  • Scheduling recurring orders

  • Managing changes before checkout



These flows helped remove ambiguity before moving into design.

From structure to design

With clarity in place, I moved into wireframing.

This was one of the most critical stages because the challenge wasn’t just designing screens—it was ensuring the new experience felt like a natural extension of Instacart.

I explored multiple iterations for:

  • Scheduling experience

  • Grocery list creation and categorization

  • Cart and checkout integration



The focus here was hierarchy and flow clarity—not visuals

Bringing it to life

Using Instacart’s existing design system, I translated wireframes into high-fidelity designs.

The goal was consistency:

  • No disruption to familiar patterns

  • Clear visual cues for new interactions

  • Seamless integration with existing UI

At this stage, the feature started feeling like a natural part of the app rather than an addition.

Testing the experience

I conducted usability testing with 8 participants using Maze and Zoom, focusing on real tasks:

  • Scheduling a recurring order

  • Confirming delivery

  • Creating and using grocery lists


What users experienced

The results showed a strong foundation, but also important gaps.

👍 What worked well:
  • Users understood the scheduling concept quickly

  • Flexibility in frequency matched real expectations

  • Visual design aligned well with Instacart’s system

👎 Where users struggled:
  • Cart CTA lacked clarity

  • Some actions were not visually discoverable

  • Users were unsure what to do after creating categories


Iterating based on feedback

Based on findings, I refined the experience by focusing on clarity and feedback loops.

Key improvements included:

  • Making scheduling actions more explicit

  • Improving visibility of confirmation states

  • Adding guidance after category creation

  • Aligning visual cues with existing Instacart patterns



These iterations significantly improved task completion clarity.


Final experience

The final design enables users to:

  • Schedule recurring grocery deliveries

  • Organize items into reusable grocery lists

  • Modify or skip orders without friction

What started as a personal observation evolved into a system designed around real-life repetition—making grocery shopping less about effort, and more about automation with control.

Final Prototype

Reflection

This project reinforced an important design lesson:

Good automation is not about removing user control—it’s about reducing effort without removing trust.

If I had more time, I would:

  • Run earlier usability tests before high-fidelity design

  • Explore personalization based on purchase history

  • Validate long-term adoption behaviour


© 2026 Naurin Momin

© 2026 Naurin Momin