Pretty Productive
Published in

Pretty Productive

These Aren’t Your Grandmother’s Grocery Lists

How I used relational databases to help take dinner off my plate

Three bowls sit on a wooden table. From left to right, they contain breaded fish, sliced steak, and a roast. Each is decorated in leafy greens and onions, with cashews, peppers, and sauces surrounding each bowl.
Photo by Lily Banse on Unsplash

There is no chore more cruelly mundane than grocery shopping.

I know what you’re thinking. Dishes, mopping, laundry, cleaning toilets—surely one of these claims the honor of Worst Household Chore. Not in my book. Groceries are the bane of my existence. They suck up all of my time and all of my thoughts. They require me to get dressed, leaving the comfort of my home in favor of a packed aisle, as I check items off of my half-scribbled list with a chewed-up pen that I found in the back seat of my car.

I have to do math amidst screaming children and then I have to spend money. To top it all off, I don’t even get to buy all of the deliciously awful food that I bought in college anymore. Groceries suck. I’ll say it.

Although I will admit, however hesitantly, that it’s possible I self-sabotage. It’s possible that in my unyielding dread for the process, I have inadvertently made it harder on myself. More than most other responsibilities, grocery shopping requires proper planning to be successful and my back-of-the-napkin scrawls weren't doing anything to guide me among the Saturday morning chaos.

So I made my computer write a better list for me.

I haven’t written a grocery list for myself in three months. By using Airtable, a relational database software, I created a system that made grocery shopping so easy, even I could do it. Tired of my failed grocery trips, I sat down and broke the chore into manageable chunks, then let the software do the rest.


One of the great, unsolvable burdens of the human condition is figuring out what to eat. From cavemen to the modern man, we have spent our days asking the same questions: what’s for dinner? How am I going to cook it? Will I die if I eat this semi-sprouted potato?

We forget, but these are hard questions to answer on a daily basis, tied to our very survival. To save myself a series of resigned and exhausted DoorDash orders each night, I have long committed to planning my dinner schedule two weeks in advance, just to save on brain capacity. It doesn’t have to be perfect. It doesn’t have to be in chronological order. I just have to sit down and come up with 14 meals—any 14 meals I want.

But inevitably, each time I try to make a grocery list, I immediately forget every meal I have ever made. It’s as though I’ve stumbled into an open-answer test when I was expecting multiple choice. If my life depended on it, I couldn’t recall a single recipe, leaving me stuck at the very first step.

My only hope of combatting this bi-weekly brain fart is to create a database of meals—one central hub that lists all of the recipes I know so that I don’t have to store them in my head. My grandmother used a recipe box. I use spreadsheets.

A master list of dinner meals written out in airtable. Each meal is associated with a “Dinner” tag. Tostadas and Tacos are selected from the list, propmpting the “Checked” calculator to read “2”
Photo by Sarah Coury

A master list of meals allows me to see all of my favorites at a glance. I can categorize them by meal type (breakfast, lunch, dinner, and snack), then select my 14 meals for the next two weeks. The system even counts them for me as I go. By turning my dinners into a dynamic checklist, I save myself the time and effort of trying to recall meals by memory.


Even with a master meal list, there is still quite a bit of thinking left to do in the grocery process. Picking the meals is only the first step. Now I have to remember how to make them. When I’m standing in the middle of a bustling aisle, can I trust myself to remember that my chicken paprikash recipe calls for grape tomatoes, or that my tortellini soup recipe calls for baby carrots? (Spoiler: I definitely can not trust it.) I can’t tell you how many times I have forgotten the guacamole for my Taco Tuesdays—the guac!

I am a big believer that the less time I have to spend at the grocery store, the better. I can only be so efficient when I’m shopping by meal, jumping back and forth between aisles as I halfheartedly remember ingredients. Not to mention the strain it’s bound to have on my budget—a girl can only pass an Oreo endcap so many times before she finally gives in to a 2 for 1 sale. I live a systems-oriented life, and while my brain may operate by meal, my grocery store operates by ingredient.

This is where relational databases really shine. In my case, I have associated ingredient records with every meal. When I select one of my meals, the system automatically selects all included ingredients and generates a complete list for me. It takes a bit of effort upfront to categorize everything, but it’s all worth it when my entire grocery list auto-generates with the click of a few buttons.

An Ingredient list written out in Airtable. Each ingredient is associated with a category such as meat, dry goods, canned goods, dairy, or produce. Every ingredient is associated with a checked field that reads “This Week.”
Photo by Sarah Coury

I have chosen to categorize primarily by grocery section (more on that below), but there are very few limits to this system. I could add a filter for items that I already have in stock. I could add nutrition information or allergen warnings. I could even add in measurements of each ingredient and calculate the sum for all meals to ensure I get exactly the right amount—although I’ve always been more inclined to measure with my heart, so this version does the trick for me.


At this point, I have wholly eliminated the need for recipe recall. I don’t have to remember meals and I don’t have to remember the ingredients that make them up. What used to take me an hour now takes me about five minutes. In fourteen clicks, I have a comprehensive grocery list and the only question on my mind is: what sounds good?

Most of my thinking is done for me, but as I said before, I’m not looking to take up residence in my local Aldi. I want to get in, get out, and get on with my day. I can’t run down my randomly generated list of ingredients, sprinting in between aisles with my cart. I need to know where everything is and when I’m going to pass it. When it comes to grocery stores, I operate on a one-and-done rule. A second trip to the same aisle may as well be a death march.

But don’t worry—I’ve prepared for this. Remember how every ingredient is categorized by section? With a single click, I can organize my list to ensure I don’t miss a single thing.

An ingredient list written out in Airtable. Ingredients are now sorted by category such as produce, meat, dairy, and canned goods. Each record is associated with a checked box that reads “This Week” as well as a meal. In this case, all meals are Paprikash.
Photo by Sarah Coury

Meal Prep

Even after all this, the food still hasn’t made it to my table. Getting it to the house is only half the battle—remembering to make it is the other. The options for meal preparation will largely depend on the software, but Airtable allows me to assign dates, set reminders, and create timers. Need to know when to defrost the chicken? No problem. Can’t forget to throw the pork in the crockpot? Easy peasy.

Relational databases were built for the forgetful among us. They keep us on track for professional projects, so why shouldn’t we use their power for our personal lives as well? A grueling morning of groceries now takes me a single hour. My gound turkey is always ready when I need it. I always have guac. These are the everyday luxuries that automatic systems afford us. We deserve to conserve our own hours just as ardently as we conserve our company’s.

You have enough to think about already. Do yourself a favor and take dinner off your plate.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store