Inspiration

I live alone and enjoy cooking, so I often buy different ingredients and keep them in my fridge. The problem is that I always forget what I already have and which food is about to expire.

When several ingredients get to expired and shoud be used soon, I want a quick way to turn them into one meal instead of letting them go to waste. I built Fridge Pal as an app for my own daily life, hoping it could make cooking easier and help me waste less food.

What it does

Fridge Pal helps you keep track of food in your fridge, freezer, and pantry. It also shows which ingredients should be used soon.

You can select several ingredients, and Fridge Pal uses AI to suggest meal ideas that combine them. After cooking, you can record what you actually used and keep your inventory up to date.

How I built it

The frontend uses Vue 3, TypeScript, Vite, Vue Router, and vue-i18n. We created a custom design system with semantic color tokens, reusable components, responsive layouts, and support for both English and Simplified Chinese.

The backend uses FastAPI, SQLAlchemy, Alembic, and Pydantic. MySQL stores production data, while SQLite keeps local development and testing lightweight. The application is packaged with Docker Compose so the frontend, API, database migrations, and persistent storage can run as one deployable system.

Most of the codes are vibe-coded with Codex. I also created an AI recipe layer based on DeepSeek API.

Challenges I ran into

AI is useful for suggesting meals, but it should never decide that food has been consumed. We created a strict boundary: AI can propose recipes and ingredient amounts, but only the user can confirm an inventory update through the What did you use? flow.

Expiration tracking also became more nuanced than expected. The interface needed to show urgency without making food-safety claims, while still handling different storage locations, multiple lots of the same food, unit conversion, and changing quantities.

Also in the original design, I used Tavily to search for real published recipes, then asked AI to extract and organize them. This turned out to be much harder than expected. Recipe websites have very different layouts, the page data is often noisy or incomplete, and converting it into a reliable structured recipe was difficult. Reusing published recipe content also introduced attribution and copyright concerns. So I decided to simplify the approach and generate original meal ideas directly with AI, based on the ingredients the user selected. This made the experience faster, more consistent, and easier to control.

Accomplishments that I'm proud of

Honestly, I am proud that I turned an idea from my daily life into a working app. I also love that Fridge Pal has its own personality. I designed the logo as a cute little fridge companion and created playful loading animations that make the app feel more friendly.

I started with brainstorming, then gradually worked through every screen and interaction. The first version had too many steps and showed so much information that even I got confused using it. I kept removing unnecessary actions and simplifying the interface until the experience felt clear and natural. I am really happy with how approachable the final version feels. More importantly, this is more than a hackathon demo. I can actually see myself continuing to use it after Build Week.

What I learned

I learned a lot about turning an idea into a complete full-stack product. I became more comfortable connecting a Vue and TypeScript frontend with a FastAPI backend, designing database models, managing inventory state, and packaging the app with Docker.

I also learned where AI works well and where it struggles. AI was much more useful when given a clear task, such as create a meal idea from a specific list of ingredients and quantities, instead of generating some structured data.

Also, I learned that simplifying an experience can be harder than adding features. Removing unnecessary steps and information helped me turn a complicated first version into something I can actually imagine using every day.

What's next for Fridge Pal

My next priority is to improve the app’s performance, reliability, and overall polish. I also want to make the AI-generated recipes more accurate, practical, and easier to follow in a real kitchen.

There are still interaction details I want to rethink. For example, seasonings probably need their own section, and the difference between editing a recipe and cooking it to update Storage is still a little confusing. I want these two workflows to feel much clearer.

In the future, I would also like to explore community features, such as sharing recipes and discovering how other people use similar ingredients.

Built With

Share this project:

Updates