No more grocery shopping

I do not dislike cooking. I dislike having to mandatorily do it (not even AI will spare us from eating every day) and the whole loop around it: decide what to eat, turn that into a list, go to the shop, carry it home, only to discover a few days after that I forgot one of the key ingredients. Preparing your lunch can be fun, but it is not (for me) if I have to do it every day.

So the goal is not a better shopping trip. It is no shopping trip. This post is the plan, written before any of it works, so that later I can be honest about which parts of it were wrong or not plausible.

The scenario to solve

Decide → list → buy → transport → cook.

I want to fully automate the process, from deciding what to purchase, to how and when to cook each meal. Thinking what to eat every day becomes annoying, and what’s worse, it gets really boring. By doing this I not only want to save some time, but also learn new recipes and try food that I would possibly never think about cooking on my own. I want to save my creative energy for tasks that will make me fill more fulfilled.

It’s worth separating the decisions from the errands, because they fail differently. The deciding stage is genuinely hard and genuinely repetitive, which is where AI is useful. The buying stage is the one everyone assumes is a solved API call, and isn’t.

Phase 0 — Defining the requirements

Phase 0.5 — Defining the inputs

These are the required variables to input that can vary over time.

Let’s discuss now all the different steps and caveats I need to take into account:

Phase 1 — menu generation

The output is a week of meals and a consolidated shopping list where every item traces back to a recipe.

That tracing is the part that matters. A list I can’t explain to myself is a list I’ll second-guess, and second-guessing is precisely the thing I’m trying to delete. It also handles the arithmetic: one bunch of parsley serves three meals, and working that out is not how I want to spend a Sunday.

The hard problem here isn’t generating a menu. It’s memory — the system has to know that what it suggested three weeks ago was a failure, and not suggest it again.

Phase 2 — buying, where the plan has to be honest

The comfortable assumption is that “submit the basket” is an API call. Mostly, it isn’t. Supermarket ordering is a website built for people, and driving it programmatically is fragile, and quite possibly against terms I already agreed to.

So before any code gets written for this stage, the question to answer per retailer is: is there a documented API or partner integration, does the app expose anything stable, and what do the terms actually permit? I’d much rather learn that the answer is “no public interface, so this step stays manual” than build something that breaks every time a button moves.

And the fallback is still a win. If the system assembles a basket that I review and submit with one tap, that has already deleted the trip, the list and the arithmetic, and left me with one button. Full automation of this stage is the nice-to-have, not the point.

Phase 3 — paying, which gets the tightest constraints

This is the only step that can carry some risk, so it’s the only one I’m carefully designing from the start.

Picking the delivery slot is the easy half: take the available windows, prefer the usual weekday, done.

Phase 4 — the recipes have to arrive where I cook

Recipes need to be available in my phone or tablet, so I can open them and read through when the time for cooking comes.

Step two — someone else cooks

Software stops here. The second half of the plan is a person who arrives after the delivery and cooks.

The difficulty isn’t the hiring, it’s the coupling. The cook’s arrival is downstream of a delivery window I don’t control. A late delivery means someone standing outside my door for half an hour. So the schedule needs slack built in, and the system needs to tell them when the delivery actually arrived, not when it was promised.

I will have to wait and understand how predictable and trustable the system is, and then start thinking about this phase. I know there’s companies that offer part time chefs that will come into your house and batch cook in 3-4 hours your whole week’s meal. But I still need to do a lot of research on that.

How I’ll know it worked

The code lives in its own repo. I will keep this post updated with the implementation details, and the retrospective when parts of this turn out to be wrong.

← All posts