Skip to content
Dinithi De Silva

How I Use AI to Solve “Ada Monawada Hadanne?” in a Sri Lankan Home

September 27, 202611 min readOriginal article on Knovik →

How a tech mom of twins is turning supermarket shopping, the fridge, freezer and larder into a smarter family meal system

There is one question that appears in almost every Sri Lankan home, usually somewhere between finishing work and dinner:

“Ada monawada hadanne?” — What are we cooking today?

It sounds simple.

It is not.

One evening, Madus had already decided he didn’t want carbs for dinner.

The boys wanted spaghetti with chicken.

And I was doing what many Sri Lankan moms do when inspiration disappears: scrolling through Facebook cooking groups trying to figure out what to make with what we already had at home.

The funny thing was, we were not short of food at all.

Between the fridge, freezer and larder, we had chicken, eggs, broccoli, beans, carrots, mushrooms, pumpkin, potatoes, dhal, chickpeas, cowpea, cheese, milk, penne, fruit and plenty of other things.

A lot of it had come from our usual supermarket runs to Glomark and SPAR, sometimes with really good credit-card promotions that were running at the time.

So the problem was not:

“We have nothing to cook.”

The real problem was:

“How do I turn what we already bought into one sensible dinner for four people who do not all want the same thing?”

That is when the idea behind Smart Prep started making much more sense to me.


Meal Planning Is Not Really a Recipe Problem

Most meal-planning apps assume the problem is:

“What recipe do you want?”

But in our house, the problem is more practical:

  • What is actually in the fridge?
  • What is in the freezer?
  • What is sitting in the larder?
  • What should be used first?
  • What can Madus eat without carbs?
  • What will the boys actually eat?
  • Can I avoid cooking three separate meals?
  • Do I really need to buy anything else?

That is not just a recipe problem.

It is a small inventory, planning and optimization problem.

And honestly, once I started thinking about it that way, the software engineer in me could not unsee it.


Why “Fridge Inventory” Is Not Enough in a Sri Lankan Home

A lot of meal apps talk about “what is in your fridge.”

That is only part of the picture here.

Our food is spread across three places.

Fridge

Fresh vegetables, fruit, yoghurt, cheese, milk and cooked food.

Freezer

Chicken portions and anything we batch or store for later in the week.

Larder

Dhal, chickpeas, cowpea, pasta, muesli, rusks, coconut oil, salt and other staples.

So if an AI only understands the fridge, it does not really understand our kitchen.

Smart Prep needs to understand all three.


The Real Shopping Problem: Planned vs Actually Bought

Another small thing that makes a big difference:

There is a difference between:

“We planned to buy chicken.”

and

“We actually bought 2.8 kg of chicken and eight skinless chicken thighs.”

That distinction matters.

We also bought things like:

  • 500 g beans
  • 500 g carrots
  • 150 g winged beans
  • kathurumurunga
  • broccoli
  • pumpkin
  • mushrooms
  • potatoes
  • dhal
  • chickpeas
  • cowpea
  • eggs
  • cheese
  • milk
  • penne
  • strawberries
  • papaya
  • watermelon
  • oranges
  • Embul bananas
  • small mangoes

That is the real context the system should use.

Not an imaginary pantry.

Not a generic recipe database.

Our actual food.


Glomark, SPAR and the Promotion Trap

There is also a very Sri Lankan supermarket habit behind this project.

When Glomark or SPAR has a good credit-card promotion, especially a premium-card offer, it is very tempting to buy more.

And to be fair, some of those offers are genuinely great.

But there is a catch.

A discounted item only saves money if you actually eat it.

Buying broccoli on promotion and forgetting it at the back of the fridge is still waste.

Buying two packs of strawberries because they are on promotion and throwing one away later is not a saving.

That became one of our design rules:

A discount only saves money if the food eventually reaches the table.

So Smart Prep should not only understand:

“What is on offer?”

It should also understand:

“Will we realistically use this before the next shop?”

What Smart Prep Actually Does

Madus and I are building Smart Prep as a custom Flutter app around one simple idea:

Start with what we actually bought, then work forward.

The flow is roughly:

[ Shopping List ]
      ↓
[ Actual Purchases ]
      ↓
[ Fridge + Freezer + Larder ]
      ↓
[ Stock Awareness ]
      ↓
[ Meal Plan ]
      ↓
[ Adult Meal + Kids Adaptation ]

The Google Sheet sits quietly underneath as a lightweight shared mini database.

The Flutter app is the part we actually use.

So the architecture looks like:

Madus / Dinithi
      ↓
 Flutter App
      ↓
 Small API Layer
      ↓
Shared Google Sheet

That is enough for our current use case.


The Dinner Problem That Started It All

Let us go back to that evening.

The constraints were:

  • Madus: no carbs
  • Boys: chicken spaghetti
  • Me: preferably one cooking session, not three
  • Fridge: use fresh vegetables before they spoil
  • Larder: make use of what we already paid for

A normal recipe search gives you 50 chicken ideas.

That is not what I need.

What I want is:

“Given exactly what is in our fridge, freezer and larder, what is the easiest way to feed everyone tonight?”

A good Smart Prep answer could be:

For the boys

Chicken spaghetti with finely chopped carrot and broccoli.

For Madus

The same chicken with broccoli, mushrooms and beans — no spaghetti.

For me

Either the spaghetti version or the low-carb version.

Same chicken.

Same vegetables.

One main preparation.

Three plates.

That is useful.


Whoever Reaches the Kitchen First Should Know the Plan

One of my favourite goals for Smart Prep is simple:

Whoever gets to the kitchen first — usually me, because Madus has a mysterious habit of disappearing after 5 PM 😂 — should be able to understand tonight’s food situation in ten seconds.

And there is another reason I want the app to answer quickly.

Asking Madus:

“What do you want for dinner?”

somehow makes him look like the roof is about to collapse.

He goes completely silent for a few seconds, starts thinking far too seriously about the question, and then suddenly remembers that he has some very important unfinished work to do. 😄

So yes, part of Smart Prep’s job is also to remove the need for that conversation altogether.

Instead of asking, we should already know what makes sense based on:

  • what we bought,
  • what is left,
  • who is eating,
  • what needs to be used first,
  • and what can realistically be cooked without turning dinner into a second full-time job.

AI Should Not Mean “Send Everything to a Huge Model”

This is where we are taking a slightly different approach.

I do not think every kitchen decision needs a powerful cloud LLM.

If I ask:

“What can I make tonight with chicken, beans, carrot and mushrooms?”

that is not necessarily a difficult reasoning problem.

So Smart Prep is designed as a hybrid AI system.


Local SLM for Quick Everyday Decisions

The app can use a small local model on the phone for frequent, simple decisions.

Things like:

  • What can I cook right now?
  • Which fresh item should I use first?
  • Give me three quick dinner options.
  • What can I make without buying anything?
  • How can I adapt this meal for the boys?
  • Which vegetable is most urgent to use?
  • What can I cook in 20–30 minutes?

That flow is:

Fridge + Freezer + Larder
          ↓
      Local SLM
          ↓
  Quick Meal Suggestions

This has several advantages:

  • faster responses
  • less cloud dependency
  • better privacy
  • lower token usage
  • usable even when internet connectivity is poor

Most importantly, it does not make sense to spend cloud tokens every time I wonder what to do with half a packet of beans.


The Cloud LLM Has a Different Job

The larger model is used when the problem is actually complex.

For example:

“Plan the next seven days using what we already bought. Madus prefers no carbs for dinner. The boys need mild food and school snacks. Use fresh vegetables first, minimize waste and avoid unnecessary shopping.”

That is a proper reasoning task.

Now the model has to consider:

  • current inventory
  • adult preferences
  • child preferences
  • school snacks
  • meal combinations
  • freezer portions
  • food freshness
  • weekly balance
  • what was already used
  • what remains
  • what should be bought next

That is where a bigger model earns its place.

The system becomes:

                    ┌─────────────────────┐
                    │ Shared Google Sheet │
                    │ Shopping + Stock    │
                    │ Meals + Preferences │
                    └─────────┬───────────┘
                              │
                 ┌────────────┴────────────┐
                 │                         │
                 ▼                         ▼
        Local SLM on Phone           Cloud LLM
        Quick decisions              Deep reasoning
                 │                         │
        • Dinner now                 • Weekly meal plan
        • Use-soon food              • Meal-prep strategy
        • 3 quick menus              • Shopping optimization
        • Simple substitutions       • Family constraints
                 │                         │
                 └────────────┬────────────┘
                              ▼
                        Flutter App

The Local Model Solves “Tonight”

This is probably the feature I would use most.

Imagine the app knows we have:

  • chicken
  • beans
  • carrots
  • broccoli
  • mushrooms
  • cheese
  • eggs
  • penne

It also knows:

  • Madus does not want carbs
  • the boys want chicken spaghetti
  • I do not want to spend another 30 minutes searching Facebook groups

The local model can immediately suggest:

One preparation, different plates

Boys
Chicken spaghetti with finely chopped carrot and broccoli.

Madus
Chicken with broccoli, mushrooms and beans.

Me
Whichever version I want.

That is much better than:

“Here are 50 chicken recipes.”

The Cloud Model Solves “This Week”

Once or twice a week, the stronger model can do the more expensive reasoning.

For example, after a shopping run it sees:

  • 2.8 kg chicken
  • 8 skinless thighs
  • 500 g beans
  • 500 g carrots
  • broccoli
  • pumpkin
  • mushrooms
  • winged beans
  • kathurumurunga
  • eggs
  • dhal
  • chickpeas
  • cowpea
  • fruit
  • dairy

Then it can decide:

Chicken Pack A

1.0 kg for Sunday and Monday.

Chicken Pack B

0.8 kg for Wednesday.

Chicken Pack C

1.0 kg for Thursday and Friday.

The later portions go into the freezer.

The eight thighs remain as flexible backup protein.

Suddenly:

“Do we have chicken?”

becomes:

“Wednesday’s chicken is already portioned and frozen.”

That removes a surprising amount of mental effort.


The Same System Can Reduce Food Waste

This is probably one of the most useful parts.

The foods we forget are often not expensive dramatic items.

They are the small things:

  • mushrooms
  • broccoli
  • half a pumpkin
  • kathurumurunga
  • strawberries
  • cucumber

So the app can sort things into simple urgency groups.

Use first

  • Mushrooms
  • Broccoli
  • Kathurumurunga
  • Strawberries

Can wait

  • Potatoes
  • Onions
  • Eggs
  • Chickpeas

Then meal planning starts with:

“What needs to be rescued?”

instead of:

“What recipe looks nice today?”

That is a better use of AI.


School Snacks Become Part of the Same System

With twins, school snacks are another small daily planning problem.

You cannot just write:

“Fruit.”

You need something specific.

For example:

Monday

Strawberries + yoghurt

Tuesday

Embul banana + small rusk portion

Wednesday

Orange pieces + biscuit

Thursday

Mango + yoghurt

Friday

Watermelon + cheese

And if strawberries are nearly finished by Tuesday, the plan should adapt.

That is why shopping, inventory, meals and school snacks should not live in separate systems.


The Twins Do Not Need a Completely Separate Menu

One thing I really like about this approach is that the twins remain inside the family meal plan.

We are not trying to build a separate “kids menu.”

Instead:

  • same chicken
  • same vegetables
  • less chilli
  • less salt
  • softer texture
  • smaller pieces

For example, if we make chicken curry for adults, we can take the boys’ portion out earlier before finishing the adult version.

That means one meal can become several suitable versions without cooking from scratch again.


Local AI Also Helps With Privacy

There is another reason I like the local-model approach.

Our household food preferences, daily inventory and family habits do not need to leave the phone for every tiny interaction.

If the local SLM can answer:

“What can I make with these ingredients?”

there is no reason to send the full household context to a cloud model.

The cloud model only gets involved when deeper reasoning is useful.

So the philosophy is:

Local first. Cloud when needed.

That also keeps the system cheaper.


And Yes, It Saves Tokens

This is a very practical consideration.

Imagine asking ten questions in a week:

  • What can I cook tonight?
  • Can I use these mushrooms?
  • What should I pair with chicken?
  • Which vegetable should I use first?
  • What can the boys eat from this meal?
  • What quick menu works with eggs?
  • Can I make something without rice?
  • What should I do with leftover broccoli?

If every request sends the entire pantry, family preferences and meal history to a large LLM, that is wasteful.

A local SLM can handle most of those.

Then maybe once or twice a week we use a bigger model for:

“Re-plan the rest of the week based on what remains.”

That makes much more sense.


Why We Still Use Google Sheets

Yes, we could build a proper database.

We probably will later.

But for now, Google Sheets is surprisingly practical.

Both of us can inspect it.

We can correct something manually.

It is easy to share.

It is easy to back up.

And the Flutter app gives us the user experience we actually want.

So the Sheet acts like infrastructure.

The app becomes the family interface.


What Changed for Us

We shop with more purpose

Instead of:

“This looks healthy, let’s buy it.”

the better question becomes:

“Where will this appear in this week’s meals?”

We use what we already paid for

The system starts with real purchases.

If we already have broccoli, beans, carrots and kathurumurunga, there is no reason for the meal planner to suggest buying another vegetable.

We share the same plan

If Madus changes dinner, I should see it.

If I finish the strawberries, they should disappear from stock.

If someone moves chicken from the freezer to the fridge, that should be visible.

The goal is simple:

Whoever gets to the kitchen first — usually me, because Madus has a mysterious habit of disappearing after 5 PM 😂 — should be able to understand tonight’s food situation in ten seconds.

What I Like About This Kind of AI

There is so much conversation around AI solving huge problems.

Replacing work.

Automating industries.

Building agents.

All of that matters.

But some of the AI I appreciate most solves very ordinary problems.

After a full day of work, when the boys are hungry and everyone wants something slightly different, having an app say:

Tonight: use the chicken, broccoli, beans and carrots. Make chicken spaghetti for the boys and the same chicken with vegetables for Madus. No extra shopping needed.

is genuinely useful.

There is nothing flashy about it.

It just removes one more decision.

And sometimes that is exactly what technology should do.


The Bigger Idea: From Supermarket to Table

What we are really building is not an AI recipe generator.

It is a small household decision system.

The intelligence comes from combining:

what we bought + what remains + what needs to be used + who is eating + how much time we have.

Eventually Smart Prep should be able to say:

You still have beans, carrots, broccoli and chicken. Use broccoli tonight, beans tomorrow and carrots later in the week. No vegetable shopping needed.

Or:

You usually finish strawberries within three days. One pack may be enough next week.

Or:

Based on what remains at home, here is your next Glomark or SPAR shopping list.

That is where it becomes interesting.

Not AI inventing more recipes.

AI understanding the small operational system behind a Sri Lankan family kitchen.


For Other Sri Lankan Tech Parents

If your evenings involve some combination of:

  • Teams or Slack
  • stand-ups
  • production issues
  • school bags
  • toddlers
  • supermarket promotions
  • rice cookers
  • curry pots
  • Facebook cooking groups
  • and asking “ada monawada hadanne?”

then you probably understand exactly why we started building this. 😂

You do not need a complicated system to start.

Even a shared spreadsheet containing:

what you bought → what you have → what you plan to cook

already helps.

Then AI becomes much more useful because it is reasoning over your real household context.

For us, the best AI is not always the one doing the most impressive thing.

Sometimes it is simply the one that answers:

“What are we cooking tonight?”

before either of us has to ask.


A Note From Knovik

Smart Prep is a household project, but the pattern behind it is the same one we use when designing AI systems for businesses. Keep frequent, simple decisions on a small local model for speed, privacy and cost. Escalate to a larger cloud model only when a problem genuinely needs deeper reasoning. Ground everything in real operational data rather than generic assumptions.

If your team is weighing where AI should run and how much it should cost to run, that is the conversation we have with clients every week.


Frequently Asked Questions

Can AI really help with Sri Lankan meal planning?

Yes, especially when it works from your real inventory. It can reason about combinations like chicken, dhal, vegetables, mallung and rice instead of recommending meals that require another supermarket trip.

Why use both a local SLM and a cloud LLM?

The local model handles fast, repetitive stock-based questions cheaply and privately. The larger cloud model is reserved for weekly planning and more complex reasoning.

Can it handle different meals for adults and children?

Yes. The goal is usually to adapt one core preparation rather than cook completely separate meals.

Why use Google Sheets instead of a database?

For a small two-adult household, Sheets is transparent, easy to share and easy to correct manually. The Flutter app hides the complexity and provides the user-friendly experience.

How does this reduce food waste?

The system knows what was actually purchased, what remains and what should be used first. Meal suggestions prioritize those ingredients before recommending anything new.

Does it consider supermarket promotions?

Yes. Price and purchase history can eventually help the system understand not only what is discounted, but whether buying more actually makes sense based on household consumption.

Working on something? Let's talk.