The meal planner problem nobody names: the empty calendar

A meal planner should generate the week from recipes you have already saved, not hand you an empty calendar to fill in by hand. That means filtering on hard constraints first — allergens, diets, weeknight cooking time — then scoring what survives for variety and shared ingredients, and letting you lock the days you like and regenerate the rest.

Open any meal-planning app and you will meet the same screen: a clean weekly grid, seven empty boxes, and a small + in each one. Tap the plus, choose a meal slot, search your recipes, pick one. Repeat.

For three meals a day across seven days, that is twenty-one repetitions of a four-step interaction, every week, for as long as you use the app.

This is presented as flexibility. It is closer to data entry.

What "automatic" is supposed to mean

There is a real distinction hiding under the word, and it is worth being precise about because several apps use it loosely.

What it saysWhat it usually meansThe work you still do
"Meal planner"An empty calendar and a search boxAll of it
"Suggested recipes"A list of ideas from a stock databaseChoose, then place each one
"AI meal plan"A generated menu of recipes you don't ownFind or adapt the recipes
Actually automaticA filled week, drawn from your own libraryApprove it, or change one day

The distinction that matters is not clever-versus-simple. It is whose recipes. A planner that fills your week from a stock database has solved planning for food you never chose. You saved forty cooking videos because you wanted to eat those specific things. A plan that ignores that is a plan for somebody else.

Why it should not be an AI feature

This is the part that surprises people, in a year when the reflex is to reach for a model for everything.

Meal-plan generation in FasterChef is plain deterministic code. No model call, no network round trip, no queue. A five-hundred-recipe library plans a full week in under 200 milliseconds, and that is not a brochure claim — it is asserted by a test that runs on every commit.

Speed is the least interesting reason.

The important reason is that a planner built on a language model can invent a recipe you never saved. Ask a model to fill a week and it will occasionally produce a plausible dinner that is not in your library, or attach a recipe name to the wrong ingredients, or quietly drop the constraint you cared about most. For a chat assistant that is a tolerable failure. For the thing that decides what you are eating on Thursday and what you buy on Saturday, it is not.

Deterministic code is structurally incapable of handing you something you do not own. That is a correctness property, not an efficiency one. A planner that hallucinates is not a planner.

The two other consequences are pleasant side effects. It is free to run, which is why a meaningful amount of planning can sit in a free tier. And it is reproducible, which means "regenerate" gives you a genuinely different week rather than the same one again.

Hard constraints come first, and they are not preferences

The single most important design decision in a planner is the order of operations, and it is invisible in the interface.

Some rules are filters. They remove a recipe from consideration entirely, before anything is scored:

Others are scores. They rank whatever survived the filters — variety across cuisines, how recently you cooked something, how long it takes relative to the day of the week.

Getting this order wrong is how apps end up putting a peanut recipe in the week of someone who excluded peanuts. If allergens are scored rather than filtered, then a week that is otherwise hard to fill will eventually rank a peanut dish highest among bad options, and put it in. The recipe was penalised. It was not removed. Those are very different promises.

We would rather leave Thursday empty and say so. The planner will hand you four of seven dinners and tell you plainly that it planned four of seven, rather than pad the week with something you should not eat or something you have had twice already.

To be clear about the limits of any such system, including ours: a dietary filter is built on reading a caption somebody else wrote. If you have a serious allergy, read the ingredients yourself, every time. We can only see what the creator wrote down.

The bit that makes your shop smaller

Once the filters have run and there are several valid options for Wednesday, something interesting becomes possible.

The planner prefers combinations of meals that share ingredients.

If Tuesday's recipe wants half a bunch of coriander and Thursday's wants the other half, choosing both means one bunch instead of two, and no limp green sludge in the bottom of the fridge on Sunday. Multiply that across a week and the shopping list gets shorter, cheaper and less wasteful — without you noticing anything except that the list is smaller than you expected.

Nothing else in the category does this, as far as we can tell, and it is close to free once the planner is deterministic: you are already scoring candidate weeks, so scoring them for overlap costs nothing extra.

Lock the good days, regenerate the rest

An automatic plan that is all-or-nothing is not much better than a manual one, because the first thing anybody does with a generated week is disagree with one day of it.

So the interaction that matters is not "generate". It is:

  1. Generate the week.
  2. Look at it. Five days are fine, Wednesday is wrong.
  3. Lock the five you like.
  4. Regenerate. The locked days stay exactly as they are; the rest are drawn

again, respecting everything you have already locked in.

That turns planning from an act of authorship into an act of editing, which is a far smaller job. Nobody wants to write a week. Plenty of people are happy to correct one.

Where an automatic planner genuinely struggles

Three honest failure modes, because a post that claims none is not worth trusting.

A small library. With eight saved recipes, a "plan" is just your eight recipes in a slightly different order, and no amount of scoring changes that. Automatic planning starts being useful somewhere around twenty-five recipes and gets better from there. This is why we treat importing as the thing to make frictionless, and why the free tier plans three days rather than one: three days is genuinely useful at a small library size.

A library with no variety. If everything you saved is pasta, the week is pasta. The planner can enforce not-the-same-thing-twice; it cannot invent a cuisine you never saved.

Unusual weeks. People coming for dinner on Saturday, a fast day, a birthday. No planner knows this, and the honest answer is a fast manual override rather than a cleverer algorithm. Building a plan by hand should always stay possible, and it should not be behind a paywall.

What to look for in any planner

If you are evaluating apps — and there are several good ones — these are the questions that actually separate them:

  1. Is there a generate button at all? Look for it before anything else. In

most apps there isn't one, and the demo video quietly shows someone dragging.

  1. **Does it plan from your recipes or from a stock database?** Both are valid

products. Only one of them uses the forty videos you saved.

  1. Are allergens filtered or scored? Ask support directly. The answer tells

you how carefully the thing was built.

  1. Can you lock individual days and regenerate the rest? Without this you

will regenerate a week to fix one day and lose the six that were fine.

  1. **Does the shopping list follow the plan automatically, and stay correct when

you change it?** This is where the whole system is won or lost, and it is harder than it looks.

What we're building

FasterChef generates three, four or seven days from the recipes you have personally saved from Instagram and TikTok, respecting your diets, your allergens, your dislikes and how long you actually have on a Tuesday. It prefers weeks whose meals share ingredients, so the shop comes out smaller. You can lock any day and regenerate the rest, and you can always build a week by hand instead.

It takes one tap and about a fifth of a second, and it can only ever give you food you already chose.

If the empty calendar is the problem you recognised, the other half of the story is the shopping list — and if you are still deciding what to cook this week at all, start here.

FasterChef turns your saved reels into dinner.

Join the waitlist