
Mealwise is an AI meal-planning agent for families managing many constraints at once. It plans a full week from breakfast through dinner while considering allergies, ages, portion needs, weather, packed-lunch safety, and nutrition. The goal is to take the constraint-solving burden off the cook while keeping final decisions in their hands.
I built Mealwise with LangGraph and Streamlit, using Chroma with local embeddings for reproducible, offline retrieval without an embedding bill. Postgres Row-Level Security (RLS) and Supabase Auth keep household data separated. I also used spec-driven development with OpenSpec and built the project around extensive automated testing.
A key learning came from a bug I nearly shipped. New accounts initially received a sample household containing people with sesame and peanut allergies. Although the names were only sample data, the restrictions could be mistaken for real household information. I changed onboarding so the cook identifies who they are planning for before anything is generated. I then found that the Settings reset flow still preserved the old behaviour, showing me that fixing the main path was not enough.
This changed how I think about safety: constraints need to be correct at every entry point, not just enforced in the main planning flow.