Pantry

Planning meals & reducing food waste

Pantry project hero
Pantry project hero
Pantry project hero

Pantry is an ongoing personal project I am designing and building in public. It's an app designed to help users reduce food waste and save money by creating shopping lists linked to inventory, and by tracking the expiry and stock of items stored throughout households. Users can also check the storage and price history of items to help them shop smarter.

Role
Creator
Company
Personal
Category
Food & Drink / Productivity
Year
2024–Present
Disciplines
Product Design
Design System
Brand Identity
Background

Using produce and other food items in your household before they expire can feel like a race against the clock.

The idea for Pantry started when I wished I could receive notifications for food that was expiring, and have recipes suggested to me with food I had at home.

After the seed was planted, and the idea grew, I searched the app store and beyond for similar apps – and I found a lot. But, I was not discouraged – though my idea was not novel, my mission became more to create the best-designed app that would make these tasks as easy as possible, and a joy to use.

Research

The fact that Pantry wouldn't be the first of its kind had its benefits – I could analyze existing apps and read reviews to find out where they fell short for some users. And so, I did just that. These learnings were useful to keep in mind when crafting the design principles and throughout the design process.

Key takeaways

  • Item Categories that can be created and modified

  • Manageable Common Items and Saved Items

  • Items that include Tags, Notes, and Expiry Date

  • Shopping lists that can be manually re-ordered

  • Functionality to print lists and move items

  • Robust statistics

  • Customizable Inventory lists and additional storage spaces

Research
Brand Identity
Brand Identity

The brand is inspired by the modern kitchens where cooking happens. The logo mark combines the window and handle of the pantry door to form the letter "P". Its shape emulates the curves found in the typeface, as well as the creative, friendly, and fun personality exuded by it.

Logo.
Logo.

Pantry logo.

Logo colour applications.
Logo colour applications.

Logo colour applications.

Primary colour palette.
Primary colour palette.

Primary colour palette.

Display font - Instrument Serif.
Display font - Instrument Serif.

DIsplay font – Instrument Serif.

Body font - TT Commons Pro.
Body font - TT Commons Pro.

Body font – TT Commons Pro.

Typographic scale.
Typographic scale.

Typographic style.

Product Design

I crafted a set of design principles at the beginning of the design process to guide my thinking.

Agility before detail
Allow users to perform actions with the minimum amount data possible.

Highly reusable
Users should only have to detail something once.

Highly configurable
From a simple grocery list to full inventory management and beyond.

Use data effectively
Use the data users' input to the maximum effect.

I opted to design the app to be flexible enough to be simplified down to shopping lists optimized for groceries, or up to including full inventory management, meal plans, and recipes that could be changed in a settings area at any time.

Organizing storage spaces

Inventory was designed to give users a quick overview of items stored throughout their household, and the number expiring soon and running low. Common storage spaces (Pantry, Fridge, Freezer, Storage) set smarter default values for expiry dates of items inside them. Users can create additional storage spaces and edit the presentation of lists to suit their needs.

Organizing storage spaces

Inventory was designed to give users a quick overview of items stored throughout their household, and the number expiring soon and running low. Common storage spaces (Pantry, Fridge, Freezer, Storage) set smarter default values for expiry dates of items inside them. Users can create additional storage spaces and edit the presentation of lists to suit their needs.

Organizing storage spaces

Inventory was designed to give users a quick overview of items stored throughout their household, and the number expiring soon and running low. Common storage spaces (Pantry, Fridge, Freezer, Storage) set smarter default values for expiry dates of items inside them. Users can create additional storage spaces and edit the presentation of lists to suit their needs.

Organizing storage spaces

Inventory was designed to give users a quick overview of items stored throughout their household, and the number expiring soon and running low. Common storage spaces (Pantry, Fridge, Freezer, Storage) set smarter default values for expiry dates of items inside them. Users can create additional storage spaces and edit the presentation of lists to suit their needs.

Inventory screen.
Inventory screen.
Inventory.
Storage space icons.
Storage space icons.
Icons for storage spaces.

Enabling users to quickly add items

A modal for adding items offers actionable suggestions before the user starts to search that aim to both anticipate users' needs and inform them of the stock within their household. When adding items to a storage space, suggestions to add items purchased from shopping lists that are not yet stored appear, and when adding items to shopping lists, items that have their expiry or stock tracked. As the user searches, previously added items appear that retain previously entered data, as well as the option to add a new item.

Enabling users to quickly add items

A modal for adding items offers actionable suggestions before the user starts to search that aim to both anticipate users' needs and inform them of the stock within their household. When adding items to a storage space, suggestions to add items purchased from shopping lists that are not yet stored appear, and when adding items to shopping lists, items that have their expiry or stock tracked. As the user searches, previously added items appear that retain previously entered data, as well as the option to add a new item.

Enabling users to quickly add items

A modal for adding items offers actionable suggestions before the user starts to search that aim to both anticipate users' needs and inform them of the stock within their household. When adding items to a storage space, suggestions to add items purchased from shopping lists that are not yet stored appear, and when adding items to shopping lists, items that have their expiry or stock tracked. As the user searches, previously added items appear that retain previously entered data, as well as the option to add a new item.

Enabling users to quickly add items

A modal for adding items offers actionable suggestions before the user starts to search that aim to both anticipate users' needs and inform them of the stock within their household. When adding items to a storage space, suggestions to add items purchased from shopping lists that are not yet stored appear, and when adding items to shopping lists, items that have their expiry or stock tracked. As the user searches, previously added items appear that retain previously entered data, as well as the option to add a new item.

Storage Space Details (Pantry), scrolling, and Add Items to Storage Space screens.
Storage Space Details (Pantry), scrolling, and Add Items to Storage Space screens.

Pantry (storage space) Details and Add Items modal screens. Headers become compact when scrolling.

Inventory Details batch commands, and 2 items selected screens.
Inventory Details batch commands, and 2 items selected screens.

Inventory Details (Pantry) batch commands modal (default and selected states).

Making items smart and reusable

Item details are viewed by tapping an item inside a storage space or shopping list. When all of the quantity of an item is consumed or used, items that expire can be Finished or Discarded, removing it from the list, and logging that data to help users track their progress towards their goals of reducing food waste and saving money. Items that don't expire have a "Used" action instead. Item expiry and stock can be tracked separately for all items – tracking expiry for an item will notify users that an item is expiring soon, and tracking stock will add an item to the Running Low list once it reaches a set amount, as well as surface items as suggestions by default when adding items to shopping lists.

Making items smart and reusable

Item details are viewed by tapping an item inside a storage space or shopping list. When all of the quantity of an item is consumed or used, items that expire can be Finished or Discarded, removing it from the list, and logging that data to help users track their progress towards their goals of reducing food waste and saving money. Items that don't expire have a "Used" action instead. Item expiry and stock can be tracked separately for all items – tracking expiry for an item will notify users that an item is expiring soon, and tracking stock will add an item to the Running Low list once it reaches a set amount, as well as surface items as suggestions by default when adding items to shopping lists.

Making items smart and reusable

Item details are viewed by tapping an item inside a storage space or shopping list. When all of the quantity of an item is consumed or used, items that expire can be Finished or Discarded, removing it from the list, and logging that data to help users track their progress towards their goals of reducing food waste and saving money. Items that don't expire have a "Used" action instead. Item expiry and stock can be tracked separately for all items – tracking expiry for an item will notify users that an item is expiring soon, and tracking stock will add an item to the Running Low list once it reaches a set amount, as well as surface items as suggestions by default when adding items to shopping lists.

Making items smart and reusable

Item details are viewed by tapping an item inside a storage space or shopping list. When all of the quantity of an item is consumed or used, items that expire can be Finished or Discarded, removing it from the list, and logging that data to help users track their progress towards their goals of reducing food waste and saving money. Items that don't expire have a "Used" action instead. Item expiry and stock can be tracked separately for all items – tracking expiry for an item will notify users that an item is expiring soon, and tracking stock will add an item to the Running Low list once it reaches a set amount, as well as surface items as suggestions by default when adding items to shopping lists.

Item Details (Inventory), and interior Stats screen.
Item Details (Inventory), and interior Stats screen.

Item Details (Inventory) screen, and interior Stats screen.

Item Details (Inventory) full screen.
Item Details (Inventory) full screen.

Full Item Details screen.

Optimizing shopping lists for groceries

Shopping allows for both scheduled one-off and recurring lists. Shopping lists are sorted by item category by default that can be re-ordered. Adding items to shopping lists utilizes the same modal design pattern as with Inventory, allowing for quick and familiar list creation. As items are checked-off, they are moved into a "Ready to Store" category that appears at the bottom of the list, keeping the user's focus on remaining items. When a user finishes shopping, they complete the list and are presented with a modal allowing for storage selection of each item.

Optimizing shopping lists for groceries

Shopping allows for both scheduled one-off and recurring lists. Shopping lists are sorted by item category by default that can be re-ordered. Adding items to shopping lists utilizes the same modal design pattern as with Inventory, allowing for quick and familiar list creation. As items are checked-off, they are moved into a "Ready to Store" category that appears at the bottom of the list, keeping the user's focus on remaining items. When a user finishes shopping, they complete the list and are presented with a modal allowing for storage selection of each item.

Optimizing shopping lists for groceries

Shopping allows for both scheduled one-off and recurring lists. Shopping lists are sorted by item category by default that can be re-ordered. Adding items to shopping lists utilizes the same modal design pattern as with Inventory, allowing for quick and familiar list creation. As items are checked-off, they are moved into a "Ready to Store" category that appears at the bottom of the list, keeping the user's focus on remaining items. When a user finishes shopping, they complete the list and are presented with a modal allowing for storage selection of each item.

Optimizing shopping lists for groceries

Shopping allows for both scheduled one-off and recurring lists. Shopping lists are sorted by item category by default that can be re-ordered. Adding items to shopping lists utilizes the same modal design pattern as with Inventory, allowing for quick and familiar list creation. As items are checked-off, they are moved into a "Ready to Store" category that appears at the bottom of the list, keeping the user's focus on remaining items. When a user finishes shopping, they complete the list and are presented with a modal allowing for storage selection of each item.

Shopping, Shopping List Details, and Item Details (Shopping) screens.
Shopping, Shopping List Details, and Item Details (Shopping) screens.

Shopping lists, Shopping List Details, and Item Details (shopping list) screens.

Add Items (Shopping List), and typing state screens.
Add Items (Shopping List), and typing state screens.

Add items to shopping list modal (default and typing states).

Shopping List scrolling, all selected, and Store Items screens.
Shopping List scrolling, all selected, and Store Items screens.

Shopping List Details (scrolling) screen, Shopping List Details (completed list) screen, and Store Items modal.

Get creative with your ingredients

Browse recipes published by other users and save them for later, or create your own recipes. Recipes can be filtered by a number of different criteria including using the ingredients you have at home.

Get creative with your ingredients

Browse recipes published by other users and save them for later, or create your own recipes. Recipes can be filtered by a number of different criteria including using the ingredients you have at home.

Get creative with your ingredients

Browse recipes published by other users and save them for later, or create your own recipes. Recipes can be filtered by a number of different criteria including using the ingredients you have at home.

Get creative with your ingredients

Browse recipes published by other users and save them for later, or create your own recipes. Recipes can be filtered by a number of different criteria including using the ingredients you have at home.

Recipes - Browse and Details screens.
Recipes - Browse and Details screens.

Recipes (Browse tab) and Recipe detail screens.

Recipes - My Recipes and Saved Recipes.
Recipes - My Recipes and Saved Recipes.

Recipes (My Recipes tab) and Saved Recipes screens.

Roadmap

Settings/Help screen designs
Recipes features screen designs
Brand identity

Meal Plan feature screen designs 
Figma prototype
Dark mode
iOS app assets
Common Items development
Version 1 iOS development (Inventory, Shopping, and Settings)
Family Sharing feature
Barcode scanning feature
Print lists functionality 
Meal Plan feature development
Recipes feature development
watchOS app design and development
More