Fridge Friends

Later has an expiration date. Rescue your groceries and make time for the people you care about.

Inspiration

Staying connected shouldn't cost a fortune or a free weekend. For young adults and students juggling classes, work, and rising prices, "let's catch up soon" keeps sliding to later. Going out is expensive, schedules never line up, and meanwhile the groceries we already bought sit in the fridge until they go in the trash.

But everyone has to eat, and cooking together turns a chore we already have into time with the people we care about. Now add a deadline: the chicken in your fridge has two days left. Suddenly, later has an expiration date. So we asked: what if the food already in your fridge could bring people together instead of going in the trash?

That question became Fridge Friends. Every ingredient is a character whose mood shows how long it has left. When yours are expiring, you can team up with friends to build a shared menu from everyone's ingredients. Along the way, you keep food out of landfills and see exactly how much money you save, or lose, with every meal.

What it does

Fridge Friends is a phone app that tracks the food in your fridge and helps you cook it before it goes bad. Recipes built around the ingredients expiring first let you rescue food on your own or with friends, so you save food and money while making time for each other.

  • Track: Add groceries by hand or snap a photo of your receipt, and every ingredient becomes a character with its own freshness timer. Its mood, from happy to nervous to crying, gets a human reaction that a date on a label doesn't: you feel for a crying spinach, so you feel the urgency to use it. Foods with a hard expiration date, like milk, skip the fade and go straight to mad and toxic.
  • Rescue: See what's expiring first and get recipes that use it up, with the money each would save. A waste and spending dashboard shows how much you've spent, wasted, and rescued over time.
  • Feast: Team up with friends who also have food to rescue, pick a group recipe, and build a shared menu where everyone contributes ingredients. Everyone's diets and foods to avoid apply to every recipe, so everyone at the table can eat what you make. Then cook together with a shared recipe.

How we built it

  • Design/UX: We mapped the user journey in Miro and created a style guide before designing 27 screens in Claude Design. Food characters are grouped into categories, each with its own progression of moods as the food ages, and a rescued or crushed animation ends every meal. A written handover kept design and engineering in sync.
  • Frontend: The frontend is built with React Native and Expo using Typescript. We utilized the expo and react native packages to cleanly execute our functionality and character animations.
  • Backend: The backend is a high-performance Python application built with FastAPI and SQLModel. The database used is PostgreSQL which is hosted on Supabase. For smart features, the backend utilizes OpenAI to generate custom recipes based on the pooled pantries and dietary restrictions of all invited friends.

Challenges we ran into

  • Defining one user behavior: People want to use their ingredients in different ways, and they want to reach out to friends in different ways. Each workflow pointed to different features, so we had to narrow to one core flow: rescue what's expiring, then invite friends to cook it together.
  • Making Feast mode work: Users can add friends and respond in different ways: accept, decline, or leave an invite pending. We had to build a system that handles each response and keeps personal meals and group feasts in separate queues.
  • Designing in parallel to reach testing faster: We spent a lot of time aligning at the beginning so we could work in parallel, splitting the design work so screens and flows moved forward at the same time instead of one after another. Once the parallel designs were done, we had to link the UX/UI to the front end and back end so everything worked as one product.
  • AI Code Validation: We needed to test our code robustly to ensure our AI generated code was functioning as intended. This was especially important as we were working in parallel with each other and oftentimes the AI code generation would create overlapping features.

Accomplishments that we’re proud of

  • Clear ownership: A project lead and named owners for each part of the build sped up decisions and exposed dependencies early.
  • A defined user and use case: They gave us a user journey, which drove the features and structure of the app. They also helped us separate MVP features from stretch features, so we could scope the build to the time we had.
  • Ingredients that communicate over time: We designed each ingredient as a character whose look, mood, and motion change as it ages. Users can read a lot of information at a glance (what's expiring, who has food to rescue, how much money is at stake) and know what to do next without instructions.
  • Technical accomplishments: Real time friend requests and fridge updates. Functioning Supabase database hosting. LLM based OCR for receipt scanning. Created a full end to end pipeline.

What we learned

  • Alignment early makes speed later: The time we spent agreeing on one idea, one user, and clear owners is what let us design in parallel and reach testing faster.
  • Scope is a design decision: Committing to one core behavior, rescuing what's expiring first, and splitting MVP from stretch features kept us from building for every workflow at once.
  • Group features multiply the states you have to plan for: Adding friends, responding to invites, and separating personal from group meals meant planning for every response before we built.
  • Technical learnings: It was our first time using Supabase Database and Authentication. We learned how to effectively debug and merge code using AI. We also implemented maintaining context and skill files for the AI agent to reference to keep the code quality high over time.

What’s next for Fridge Friends

  • Share your wins: Show achievements to friends through your profile or right after an action, like a rescued meal or a feast.
  • Buddies that react to you: Your buddy's expression and status change based on your habits, looking proud when you've saved a lot of food and worried when you've wasted a lot.
  • Alerts you control: Push notifications for the limits you set, such as how much food you've wasted or how many ingredients are nearing their expiration date.
  • Customization: Freedom to add more diets, cuisines, and allergies.
  • Chat Window: Chat box communication to schedule a new time with your friends if the current set time doesn’t work for everyone.

Built With

  • claude-design
  • expo.io
  • miro
  • openai
  • postgresql
  • python-(fastapi)
  • supabase
  • typescript-(react-native)
Share this project:

Updates

Submission history