Inspiration
My name is Monica, and I spent six years on birth control, but when I came off it, my periods were irregular, my PMS felt unmanageable, and I was eventually diagnosed with PCOS. I felt like a stranger to my own body. No one had ever taught me that what I ate could influence my hormones, mood, or cycle regularity. After months of research, I began adjusting meals to support each phase of the menstrual cycle: iron-rich like lean meats, beans, lentils, tofu, and spinach during my period; lighter, fiber-rich meals and omega-3s rich food like salmon and walnuts in the follicular phase; antioxidant-packed food like berries and dark greens around ovulation; and warming, complex-carb dishes like stews and root vegetables in the luteal phase. Slowly, my symptoms improved. My periods became more regular. PMS became less of a monster that I had to manage.
What it does
It is an app that helps track the monthly cycle of those who menstruate. It is an affordable and secure app with HealthKit integration we keep cycle tracking on device. We take the phase of their cycle & their dietary preferences like (Dairy Free, Gluten Free, etc) and recommend what to eat across our 400+ recipes.
During the Menstrual phase, the body sheds the uterine lining, resulting in menstrual bleeding. Typically lasts 3-8 days.Iron-rich foods like lean meats, beans, lentils, tofu, spinach, and fortified cereals help replenish iron lost during menstruation, preventing anemia and fatigue.
The next phase is the Follicular Phase, where the body prepares for ovulation by developing and maturing an egg. Usually spans 11-27 days. We recommend to consume foods rich in omega-3 fatty acids, like salmon, chia seeds, and walnuts, to promote healthy follicle development and reduce inflammation.
During Ovulation, a mature egg is released from the ovary during this window, when pregnancy is most likely to occur. This is known as the fertile window and typically lasts 5 days. We recommend to eat lean proteins, whole grains, and antioxidant-rich fruits and vegetables (like berries and leafy greens) to provide energy and support egg release.
During Luteal Phase, the body prepares for possible pregnancy, and if fertilization doesn't occur, the cycle begins anew. Typically lasts 10-16 days. We recommend to choose nourishing options like soups, stews, root vegetables to support comfort and digestion as the body prepares for a new cycle.
How we built it
After gathering 1,000 recipes from Ninja API with our paid license that fit a certain criteria specified above for each menstrual phase we then used Generative AI to create recipe images. After a Quality Control process we ended up with 400 recipes. We then used Generative AI to estimate macros, prep and cook time. We do not report calories for recipes since our focus is nutrition and wellness and not weight loss since under eating is not conducive to PMS.
We conducted about 10 interviews of potential users and gathered data on how people currently search for recipes and what is important to them for cycle tracking.
The app is built with Swift, SwiftUI, SwiftData, and HealthKit, in addition to 3rd party frameworks RevenueCat and Firebase. We are currently rely on HealthKit for cycle data storage. If analytics and feedback show that users do not want to give us access to read and write their cycle data, we will shift to using SwiftData for that storage. Our promise is to only securely store their data on their device.
We use MongoDB for the database and created 2 API endpoints with Python that allow any querying from the recipe database to return recipes according to cycle phase and/or diet filters and/or ingredient search. We have a membership table where we collect data from onboarding from a 3 question survey and an UUID we use to reconcile RevenueCat's subscriptions.
Challenges we ran into
One of the first challenges was cleaning of the recipes in a format for our Recipe Cards. There was a lot of parsing to do to get into the format we wanted. Another was GENAI produced a lot of weird images or the recipe pulled out of Ninja API was not useful which needed a quality control elimination process. Challenges we ran into were figuring out how to properly calculate the menstrual phases. We had some kinks writing to HealthKit and making sure new data was calculated properly in estimating the next period based off last 3 months worth of cycle data.
Figuring out how to add Firebase Analytics and Google Analytics to make sure we were capturing the correct event tracking for future analysis.
Accomplishments that we're proud of
This is our first app in the Apple App Store and working together! We are so proud of the work we have put in the past year working on this.
What we learned
Monica learned about iOS app development, and Scott learned a lot more about the menstrual cycle than he ever thought he wanted or needed to know. We learned how to work as a team, about founder agreements, and how to build an app from the ground up.
What's next for NourishUs
We are working on building our customer base since we just launched! Update the UI for iPad and prepare for iOS 26 release.
Log in or sign up for Devpost to join the conversation.