Save up to £600 a year on groceries.

Save up to £600 a year on groceries.

Save up to £600 a year on groceries.

TEAM

1

Time

2026

My role

UX Designer

KEY SKILLS

UX Design

AI

UI

TEAM

1

Time

2026

My role

UX Designer

KEY SKILLS

UX Design

AI

UI

Intro

A grocery shopping app designed to help people save during the cost of living crisis

I designed Zapp, a grocery app that empowers people to save money by comparing grocery prices and finding the most affordable options during the cost-of-living crisis.

Key insights from user research

Rising grocery prices are putting pressure on everyone's budget, while comparing deals across supermarkets takes time most people don't have.

Too expensive

With grocery prices rising month on month, parents told me the weekly shop has quietly become the hardest bill to control.

As a mother "during these times you have to find ways to save as much as possible"

man and two children on grass field
Everyone feels the squeeze

Even people living alone struggle to plan and afford a consistent weekly or monthly shop. This isn’t only a family problem.

Even with someone like me who lives by himself shopping can be a hassle and is still expensive.”

person holding brown leather bifold wallet
No time to shop around

Travelling between supermarkets to chase deals is unrealistic with young children. The cheapest option loses to the nearest one.

“I just gave birth so travelling to do shopping right now feels quite hard”

a woman holding a baby and smiling at each other
The Challenge

Bringing every supermarket into one basket isn’t as simple as it sounds

If the need is clear, why hasn't it been solved? Because it's a tough problem. Here's how three real-world challenges shaped the solution.

Same product, three names

“Coca-Cola Original 2L”, “Coca Cola 2L Bottle”, “Coke Original Taste 2L”. One drink, three catalogues. Nothing matches on name alone.

Open

Prices move all day

Supermarkets reprice thousands of lines a week. A total that was right this morning can be wrong by dinner.

Open

assorted items on display in store
No supermarket wants this

There are no public price APIs. Comparison is the one feature retailers won’t build against themselves. Data has to come from aggregator feeds that lag the shelf.

Open

Same product, three names

“Coca-Cola Original 2L”, “Coca Cola 2L Bottle”, “Coke Original Taste 2L”. One drink, three catalogues. Nothing matches on name alone.

Open

Prices move all day

Supermarkets reprice thousands of lines a week. A total that was right this morning can be wrong by dinner.

Open

assorted items on display in store
No supermarket wants this

There are no public price APIs. Comparison is the one feature retailers won’t build against themselves. Data has to come from aggregator feeds that lag the shelf.

Open

Every design decision started with a real constraint. Grocery comparison platforms already prove that large-scale product matching is possible. It just needs to be designed around carefully.

Solving the problem

So how does Zapp solve it?

Three steps: one list in, one recommendation out.

1.
Same product, three names

“Coca-Cola Original 2L”, “Coca Cola 2L Bottle”, “Coke Original Taste 2L”. One drink, three catalogues. Nothing matches on name alone.

Open

Match equivalent products

Items are matched by brand, size and category, with unit prices (£/L, £/kg) ensuring fair comparisons. Every swap is visible and can be rejected.

Open

Example

Open

1.
Same product, three names

“Coca-Cola Original 2L”, “Coca Cola 2L Bottle”, “Coke Original Taste 2L”. One drink, three catalogues. Nothing matches on name alone.

Open

Match equivalent products

Items are matched by brand, size and category, with unit prices (£/L, £/kg) ensuring fair comparisons. Every swap is visible and can be rejected.

Open

Example

Open

2.
Prices move all day

Supermarkets reprice thousands of lines a week. A total that was right this morning can be wrong by dinner.

Open

Give every quote a shelf life

Prices change throughout the day, so Zapp shows when each basket was last checked. If the data expires, it refreshes instead of showing outdated prices.

Open

Example

Open

2.
Prices move all day

Supermarkets reprice thousands of lines a week. A total that was right this morning can be wrong by dinner.

Open

Give every quote a shelf life

Prices change throughout the day, so Zapp shows when each basket was last checked. If the data expires, it refreshes instead of showing outdated prices.

Open

Example

Open

3.
No supermarket wants this

There are no public price APIs. Comparison is the one feature retailers won’t build against themselves. Data has to come from aggregator feeds that lag the shelf.

Open

Source prices without the supermarkets’ help

Instead of relying on retailer APIs, Zapp uses trusted aggregator feeds and available integrations, with every price showing when it was last updated.

Open

Example

Open

Ideation

Exploring directions and reviewing the competition, task by task

I tested three supermarket apps with the same task: complete a £40 weekly shop. This revealed what worked and where budget control was lost.

S

Sainsbury’s

Supermarket app

WORKS

Nectar prices are surfaced right on the shelf card — a saving you can see before you tap.

STOPS AT

The running total only exists in the basket. You find out you’ve overspent at the end, then delete backwards.

A

Asda

Supermarket app

WORKS

Rollback and price-lock badging makes “this is the cheap one” legible at a glance across a whole aisle.

STOPS AT

Cheap is measured against its own past price, not against the shop down the road. No outside reference point.

T

Tesco

Supermarket app

WORKS

Favourites and past orders rebuild a weekly shop in seconds — the strongest repeat-shopper flow of the three.

STOPS AT

Speed with no spending guardrail. Rebuying last week’s list quietly rebuys last week’s total.

Capability

Sainsbury’s

Asda

Tesco

Zapp

Compares prices across stores

Set a budget before you shop

Running total while you build

Part

Part

Part

Suggests a cheaper swap

Part

Part

Buy without leaving the app

Scored from the £40 task run, not from feature lists. “Part” means the capability exists but only after the basket is built.

WHAT I TOOK INTO THE WIREFRAMES

Four patterns worth keeping, and one habit worth breaking: every app in the audit puts the total at the end of the journey, where it can only ever deliver bad news.

Kept — Tesco’s past-order rebuild

Kept — Asda’s at-a-glance price badging

Kept — Sainsbury’s saving shown on the shelf card

Broke — the total that only appears at the basket

Visual explorations. Testing how “fresh” and “affordable” can live in one visual language.

The process

Mapping the customer journey from initial idea to completed order

Before wireframing, I mapped the full journey: ten steps across three phases, covering the shopper’s actions, Zapp’s responses and a loop that prevents a veto from restarting the process.

Open

Everything came back to one point: price comparison is useless if building the shopping list feels like work. Research showed two clear behaviours: some people arrived knowing exactly what they needed, while others planned the week as they shopped. Before moving into visual design, I wireframed three ways to build the same basket.

VALIDATION

Real-world reactions were mixed

Tab 1 of 2: deleting the budget screen
screen - onboarding

Users were confused about why there was a budget screen. The feature already is going to look for the cheapest prices anyway

screen - onboarding

We removed the budget step and focused instead on finding quality ingredients at the fairest prices across supermarkets.

Open questions I’m testing

01

Do you understand what the app does?

Can you understand that the main purpose of this app is to save you money on shopping?

02

Does price refresh help?

Admitting a price may have changed is honest. I’m testing whether that honesty reassures shoppers or makes every number feel unstable.

03

How often would you use this app?

Would you use this app on a weekly basis?

More testing to come!

What I've learnt so far

More to come soon

Rafiu Onalaja

Copy Email

Rafiu Onalaja

Copy Email

Rafiu Onalaja

Copy Email