Personal Project

Grocery Pal

Helping shoppers waste less food through AI-powered inventory tracking

Mobile AppAI0-to-1

Overview

Grocery Pal is a mobile app that helps individual shoppers track their grocery buys by expiry date, so they waste less food. Using AI-powered receipt scanning and food recognition, users can maintain an inventory record, track expiry dates, and make better decisions when grocery shopping. I first worked on this app during the Build For Good Hackathon in 2024 with my team, and decided to revisit the app as a personal project in 2026.

My Role

Product designer

Collaborators

Claude Code

Date

Early–mid July 2026 (~ 2 weeks)

Problem

Based on a survey conducted with 128 respondents, food waste is a common problem in Singapore, with a few common reasons.

Source: Survey results

Research Insights

Two findings shaped this project:

Insight

1

Users find it tedious to add or update their inventory

Respondents were more interested in using photos than receipts to add new items. They wanted to be able to add or update inventory with as little friction as possible, preferring to be able to "no typing just scan".

Insight

2

Items that are out of sight, are out of mind

Across dozens of survey responses, "sauces," "condiments," "frozen food," and "dried goods" are the most repeated answers to what's left in the fridge for a long time. Respondents were more likely to forget about items that were not visible, kept in long-term storage areas that were out of sight.

Design Principles

Three principles guided the design:

Design

Key design decisions

Design Decision

1

Easy upload and delete

Research showed people wanted "no typing, just scan", and were more drawn to snapping photos of items than to receipts. I designed the primary add item flow around photo upload, with receipt scanning as a secondary path.

Deleting of items from the inventory is also designed to be completed easily, through a swiping gesture most users would be already familiar with.

Design Decision

2

Grouping foods by larger bands of expiry dates

Grouping by urgency of expiry dates allows users to see food items that are expiring soon at a glance. Research insights revealed that visibility was important for foods to not be forgotten, which was a primary reason for food wastage. However, as most users preferred not to input expiry dates manually, and expiry dates generated by AI tend to vary in accuracy, a larger band for expiry dates would more accurately reflect food items that need attention.

Design Decision

3

Indicating expiry in more subtle ways

I decided to remove the urgency chip after iterations, as the ‘Smell check’ category was sufficient to identify food items that were expiring/expired. As the dates of expiry were AI generated, and not necessarily accurate, the chips also added a false sense of urgency.

Design Decision

4

In-place editing card instead of a bottom sheet

Editing in a bottom sheet disrupts a user's sense of where they were in a long item list while reviewing scanned items. Switching to an in-place expanding card keeps people anchored to their scroll position, so editing feels like a continuation of scanning the list. An animated expansion, and scrolling of the card to the top of the screen helps make the transition feel more smooth as well.

Working with AI as a design tool

I found working with Claude Code to be particularly useful at certain parts of the design process.

Early on, I used Claude to generate first-draft screens for the home and add-item flows. The aim was not to get polished designs, but to get a working prototype on my phone within hours instead of days, so I could have something tangible to react and iterate upon.

Mid-way, once flows were validated, I asked Claude Design for more visual directions I could explore, to test colour and type choice against each other, before I honed in on one direction I preferred.

Later, as the number of screens grew, I built out a design.md as a spec which documents spacing, colour, and component rules. The intent is to help future generated screens be aligned with design decisions made thus far.

Outcome

Grocery Pal is a working MVP deployed on Vercel, connected to the Claude API, able to scan receipts and log them into a grocery management system — designed and shipped in one week. Current features include receipt scanning, AI categorisation, expiry tracking, editing, and inventory management, with a backlog of further features awaiting development.

Reflections

Reflections

1

Prioritising the MVP

As this was a personal project, I had complete ownership over deciding what to design and build first. It was refreshing to work without competing stakeholder priorities and instead focus on defining the smallest version of the product that could deliver meaningful value. Rather than trying to solve every grocery management problem at once, I chose to prioritise the core experience of helping individual shoppers maintain an accurate inventory with minimal effort. Building the MVP reinforced the importance of validating the simplest solution first before expanding into more ambitious features, such as shared household inventories and recipe recommendations.

Reflections

2

Working with AI as a Design Partner

This project also changed the way I think about AI in the design process. While AI can quickly generate ideas, flows, and interface concepts, it doesn't replace the judgement required to create a thoughtful user experience. I found the greatest value in treating AI as a design partner rather than a designer—using it to accelerate exploration, overcome blank-page moments, and produce first drafts that I could refine. The responsibility of evaluating trade-offs, simplifying interactions, and deciding what ultimately serves the user still rests with the designer. AI made me faster, but it didn't make the design decisions for me.

Grocery Pal — Ke Er Zhang