DEV Community

DevTECH
DevTECH

Posted on

My co-founder got PCOS. So I quit my job and built a meal planning app for 100 million Indian women.

So this is a bit of a long one. Grab chai.

About two years ago, Priya — my co-founder and the person who basically stress-tests everything I build — got diagnosed with PCOS. Not shocking on its own, 1 in 5 Indian women has it. What was shocking was what happened next.

Her doctor handed her a printed sheet. A diet plan. It said things like "avoid refined carbs" and "eat low-GI foods." That's it. No context. No recipes. No mention of the fact that she grew up eating idli and sambar every morning, that her mum cooks with coconut oil, that she doesn't have 90 minutes to make something from a wellness blog written by someone in California.

She googled "PCOS diet plan India." Got 40 tabs of conflicting advice. Some said no rice. Some said brown rice is fine. One said drink fenugreek water at 6am. She tried three different apps. None of them knew what Ragi Dosa was.

She asked me — the one who supposedly knows about software — "why doesn't something like this exist?"

I didn't have a good answer. So I started building.


The thing I got wrong first

My first instinct was to build a calorie tracker. That was stupid. Nobody wants to log every meal. That's not a product, that's homework.

What Priya actually needed was someone to just... tell her what to cook. Specifically. For her body. With food she already knows how to make.

That reframe changed everything. This wasn't a tracking app. It was a decision app. Every morning it answers one question: "Aaj kya banau?" — What should I cook today?


What I actually built

MealCoreAI is a progressive web app that generates a full 7-day Indian meal plan — breakfast, lunch, snack, dinner — tailored to your health condition. Not "Indian food" in a vague sense. Ragi dosa. Bajra roti. Moong dal. Palak paneer. Real food that real Indian families cook.

We cover 7 health tracks: PCOS, Diabetes, Thyroid, Pregnancy, Kids, Fitness, and General. Each one has completely different dietary rules baked in.

For PCOS, that means low-GI, high-protein, no deep-fried stuff — because insulin resistance is the core driver of most PCOS symptoms and you can genuinely move the needle through food.

For Thyroid, it means being careful about cruciferous vegetables — most people don't know that eating too much gobi (cauliflower) can interfere with thyroid medication. The app just... handles that. You don't need to know the science.

For Pregnancy, we strip out anything that's risky — papaya, raw eggs, certain high-mercury fish — while making sure every day hits iron, folate and calcium targets. Because that stuff matters more than macros when you're 20 weeks in.


The technical part (skip if you just want the story)

The hardest thing wasn't the AI. It was the dish database.

I spent two weeks just building a database of 55 Indian dishes with full nutritional data and health flags. Every dish has columns like pcos_safe, diabetes_safe, thyroid_safe, pregnancy_safe. These aren't guesses — I worked through them with a nutritionist.

The reason this matters: when you ask GPT-4 to "generate a PCOS meal plan," it will confidently give you dishes that have no nutritional backing, make up calorie counts, and occasionally recommend something that's actively bad for the condition. I've seen it recommend bhatura for a diabetic. Bhatura!

My fix was to constrain the AI to only choose from our validated dish IDs. It doesn't generate meal names — it picks dish IDs from a numbered list. The AI becomes a smart selector, not a free-form generator. Hallucinations dropped to basically zero.

The stack is React 19 + Vite on the front, Express 5 on the back, PostgreSQL with Drizzle ORM, and OpenAPI 3.1 as the single source of truth for the API. Orval auto-generates the React Query hooks from the spec, which means I never manually write API client code. When the spec changes, one command regenerates everything.

The whole thing is open source: github.com/InoxxAIsource/mealmate


Push notifications — the thing that took three restarts

I wanted the app to actually remind you to cook at meal time. Not "Hey, don't forget to log your meal!" — I hate those. I wanted it to say "Lunch time! Today you're making Moong Dal + Bajra Roti." Your actual meal. By name.

Web Push on Android is fine. iOS nearly broke me.

On iOS, push notifications only work in Safari 16.4 or higher, and only when the app is added to the Home Screen. Not when it's open in a browser tab. Not when it's running as a bookmark. Actually installed to the Home Screen.

Getting users to do that is a UX problem. So I built a custom bottom sheet that detects whether you're on iOS, whether you've already installed it, and shows you step-by-step instructions with the actual Safari share button icon. It only appears once — if you dismiss it, it doesn't come back for 30 days. Because if there's one thing worse than a bad feature it's a naggy one.

When the scheduler fires (it runs every 30 seconds and checks the time), it pulls the user's active meal plan, finds today's dish for that meal slot, and sends a notification with the actual dish name. That specificity is what makes people leave notifications on.


What surprised me

The feature people use most isn't the AI generation. It's the Swap button.

Nobody follows a meal plan perfectly. You open the fridge on a Tuesday morning and the one thing the plan calls for isn't there. So you tap Swap, and the AI instantly replaces just that one meal while leaving the rest of the week untouched.

That single interaction — swap one meal, keep everything else — made the product feel alive instead of rigid. It went from "a plan you're supposed to follow" to "a plan that adapts to you." Which is what it should be.


Where it's at today

The app is live at mealcoreai.com. Free tier gives you a 7-day plan, grocery list, nutrition tracking and AI chat. Pro is ₹499/month or ₹2,999/year.

The sitemap has 282 pages. Lighthouse is 97/96/100/100. It's been indexed by Google for about 48 hours.

We're pre-revenue but post-product. If you have PCOS, diabetes, are pregnant, or are raising kids in India and want to try it — genuinely free, no credit card, no email sequences from me.


If you're building for India (or any market that isn't SF)

The generic advice is always "build for the user you know." But most of us building software are building for users who look like us — people with fast internet, English as a first language, and food habits from a Western diet.

1.4 billion people don't fit that profile.

The opportunity isn't to copy Noom and translate it to Hindi. It's to start from scratch with the actual constraints of real Indian life: shared family meals, regional cuisines that differ wildly, health conditions that are dramatically more prevalent than in the West, and real people who just want to know what to cook for dinner without a 45-minute deep dive into nutrition science.

That's what I'm trying to build. Slowly. One swap button at a time.


Code is at github.com/InoxxAIsource/mealmate — React 19, Express 5, Drizzle ORM, OpenAPI codegen, VAPID push, the works. Proper README with setup instructions. MIT licensed.

Ask me anything in the comments. Happy to go into the AI prompt architecture, the iOS push hell, or why I chose Drizzle over Prisma.

Top comments (0)