Brian Lewis

Pantry: one shopping list for the whole household, on every device

What
A shared household list app for the web, phone, watch, and voice
Status
Live

Pantry is a shared list app for a household. Add an item from anywhere, on the website, in the phone app, from a home-screen widget, on a watch, or by saying it to the Amazon Echo in the kitchen, and it shows up on everyone’s phone, watch, and computer, sorted into the right list.

It began as a small experiment, a home-made phone widget that showed our Alexa shopping list. It grew into a complete product that I designed and developed: its own service, a web app, phone and watch apps, and connections to the rest of our home.

Pantry in a web browser: a Groceries list with items grouped under Grocery Store, Farmers Market, and Warehouse ClubThe same Groceries list at phone width, with checkboxes beside Milk, Eggs, Sandwich bread, and other items
Pantry on a computer and on a phone, shown here with sample items.

Add from anywhere, see it everywhere

How the lists work

Items are grouped by store. Checking one off moves it to a history, where it can be restored the next time we need it. Every change reaches every device as it happens, with no refresh.

Family members join the household with an invite code. Lists are shared by default, and any list can be made private.

The Alexa app’s Lists screen: a Shopping list holding Milk and Eggs, each added a few seconds ago, above a list of completed items
Alexa’s own shopping list, where a spoken item lands before Pantry collects it.

The hard part: getting items out of Alexa

Alexa’s lists were not made to be shared with other apps, so Pantry treats each linked Alexa list as an inbox. About once a minute it checks the list, copies anything new into Pantry, and clears it from Alexa. If a step fails partway, duplicate detection keeps the item from appearing twice.

For the technically minded: one service in Python on PostgreSQL serves every client through a single interface and pushes changes to them live. The web app and extension are React and TypeScript, and the phone and watch apps are Kotlin.

More fun projects

Have a role in mind? Let’s talk it through.

I’m always open to a conversation. Remote anywhere in the US, or in the St. Louis area.

Get in touch LinkedIn