Inspiration
Millions of people manage diet-sensitive conditions: diabetes, heart disease, kidney disease on a fixed grocery budget. Many are on Medicaid or Medicare Advantage. Insurers already fund grocery and produce benefits for these patients because the right food is cheaper than the ER visit that follows the wrong diet. What’s missing is a way to turn “$100 + diabetic-friendly + my local store” into a real week of meals that actually stays under budget.
That’s why we built Fork: diet-fitting weekly meal plans for people with health conditions on tight budgets, priced against real grocery data, not AI guesses.
What it does
Fork takes a budget, household size, and health/diet needs and returns a week of meals plus a shopping list. Plans maximize ingredient reuse so packages stretch across recipes, then re-cost the full basket when you swap a meal. Clinical filters (e.g. diabetic-friendly, heart-healthy, low-sodium) sit alongside everyday diet prefs.
How we built it
- Recipe corpus scraped and structured recipes with ingredients and instructions
- Canonical ingredients messy recipe text mapped to a shared vocabulary (the join key to prices)
- Kroger price index real regional product prices, batch-built for the planner
- Planner system greedy ingredient-overlap scoring + a budget-repair loop
- API FastAPI endpoints for generate, swap, and confirm
- App Expo / React Native client with onboarding, plan view, and shopping list
What we learned
Grocery cost isn’t about finding the cheapest single recipe it’s about shared ingredients across a week. Package sizes, leftovers, and store-specific prices matter more than a confident LLM estimate. We also learned that the real buyer for this problem often isn’t the shopper alone: produce-prescription and food-as-medicine programs already hold insurer contracts and need exactly this kind of budget engine.
Built With
- beautiful-soup
- expo-router
- expo.io
- fastapi
- kroger
- pydantic
- python
- react
- react-native
- react-native-reanimated
- recipe-scrapers
- sqlalchemy
- sqlite
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.