This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.
What I Built
I built PantryPal AI, a smart kitchen companion designed for a friend who cooks for herself.
The idea came from a simple everyday problem: when you cook regularly, it becomes surprisingly difficult to remember everything in your kitchen.
What ingredients do I still have?
How much rice is left?
What is about to expire?
What can I cook without buying more groceries?
What should I add to my shopping list?
I wanted to build something that could act like a memory for the kitchen.
That became PantryPal AI. ๐ฅ
The core idea behind the project is:
AI suggests. User confirms. Database remembers.
Instead of building another recipe chatbot, PantryPal combines AI with structured pantry data. Gemma handles the flexible, language-based tasks while Python and SQLite handle the things that need to be predictable and accurate.
๐ฆ Smart Pantry
Users can add ingredients along with:
- Quantity
- Unit
- Category
- Low-stock threshold
- Expiry date
PantryPal keeps track of what is available, what is running low, and what should be used soon.
๐ค What Can I Cook?
Users can ask PantryPal for meal ideas based on what is actually available in their pantry.
They can choose:
- Breakfast, lunch, dinner, snack, or anything
- Number of servings
- Cooking preference
- Whether to prioritize ingredients that may expire soon
Gemma then uses the pantry as context to generate relevant meal ideas.
๐ฝ๏ธ I Made Something
Not every meal comes from a saved recipe.
A user can simply tell PantryPal what they cooked, for example:
I made potato and tomato curry.
Gemma estimates which pantry ingredients may have been used.
However, I intentionally do not allow the AI to immediately modify inventory.
PantryPal first shows the estimate to the user. They can review it, change quantities, add or remove ingredients, and then confirm it.
Only after confirmation does PantryPal update the pantry.
๐ My Recipes
Users can also save their own recipes with exact ingredient quantities.
When they cook a saved recipe, PantryPal checks whether the required ingredients are available and updates the pantry after confirmation.
I also added automatic unit conversion between:
kg โ g and L โ ml
For example:
Pantry before cooking:
Rice = 2 kg
Recipe uses:
Rice = 300 g
Pantry after cooking:
Rice = 1.7 kg
๐ Smart Grocery List
PantryPal can identify low-stock ingredients and help build a grocery list.
Users can also manually add grocery items.
When an item is purchased, PantryPal can add it back into the pantry, connecting the grocery and inventory flows.
โ ๏ธ Expiry Awareness
Ingredients approaching their expiry date appear as Use Soon items.
Users can also ask Gemma to prioritize these ingredients when suggesting meals.
This turns a simple question like "What should I cook?" into a small way of helping reduce food waste.
Demo
๐ Try PantryPal AI here:
https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/
The current deployment is an MVP/demo. It uses SQLite and may reset its data when the Streamlit deployment restarts or redeploys.
Code
๐ป The complete project is open source on GitHub:
ashishdhanawat111-oss
/
PantryPal
AI-powered smart kitchen companion for pantry, recipes and groceries.
๐ฅ PantryPal AI
Your kitchen remembers, so you don't have to.
PantryPal AI is a smart kitchen companion that helps users track pantry ingredients, discover what they can cook, manage recipes, reduce food waste, and organize grocery shopping.
Instead of being just another recipe chatbot, PantryPal combines AI suggestions with structured pantry data.
AI suggests. User confirms. Database remembers.
๐ Live Demo
Try PantryPal AI here:
https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/
GitHub Repository:
https://github.com/ashishdhanawat111-oss/PantryPal
PantryPal is currently an MVP deployed on Streamlit Community Cloud.
Its SQLite database is intended for demonstration purposes and may reset when the app restarts or redeploys.
๐ก The Problem
Keeping track of a kitchen sounds simple until you have to remember:
- What ingredients are currently available?
- How much of each ingredient is left?
- What is about to expire?
- What can I cook using what I already have?
- What do I need to buy?
- How much should be removedโฆ
Repository:
https://github.com/ashishdhanawat111-oss/PantryPal
How I Built It
I built PantryPal using:
- Python โ application logic
- Streamlit โ user interface
- SQLite โ pantry, recipe, and grocery storage
- Gemma 3 4B โ open-weight AI model
- Hugging Face Inference API โ model inference
The architecture intentionally separates AI tasks from deterministic application logic.
User
โ
โผ
Streamlit UI
โ
โโโโโโโโโโโดโโโโโโโโโโ
โผ โผ
Gemma AI Python Logic
โ โ
Meal suggestions Validation
Interpretation Unit conversion
Estimation Pantry updates
โ
โผ
SQLite
Pantry / Recipes /
Groceries
An important lesson while building it
One of the most interesting things I learned while building PantryPal was where NOT to trust an LLM.
Initially, I tried asking Gemma to generate complete recipes with exact ingredient quantities.
The meal ideas were useful, but the quantities were not always reliable enough to directly modify someone's inventory.
For example, an AI-generated meal idea might be perfectly reasonable while its estimated ingredient quantities are unrealistic.
Instead of endlessly prompt-engineering around this problem, I changed the architecture.
Gemma handles the fuzzy tasks
- Understanding what the user cooked
- Suggesting meals
- Interpreting natural language
- Estimating possible ingredient usage
Python handles the exact tasks
- Quantity validation
- Unit conversion
- Inventory calculations
- Database updates
And whenever an AI estimate could affect inventory, the user gets the final confirmation.
That experience became the main design principle of PantryPal:
AI suggests โ User confirms โ Database remembers
Why Does Open Innovation Matter?
I chose Gemma, Google's open-weight model, because I wanted the intelligence at the center of PantryPal to come from an open model rather than designing the entire application around a completely closed AI system.
For PantryPal, separating the application from the model is important.
The pantry system does not belong to Gemma.
The recipes, grocery system, validation, calculations, unit conversions, and database are independent Python components.
Gemma is the intelligence layer.
Because of this separation, the AI layer can evolve independently.
A future version could run Gemma locally, use another Gemma model size, switch inference providers, or experiment with another open model without rebuilding the entire kitchen application.
Working with an open-weight model also made me think more carefully about how AI should actually fit into a product.
One of the biggest lessons from building PantryPal was:
Using more AI does not automatically make a product better.
For understanding natural language and generating meal ideas, Gemma is useful.
For subtracting 300 grams from 2 kilograms, normal code is better.
The interesting engineering decision is deciding where each belongs.
๐ Current MVP Limitation
The deployed PantryPal version is currently a single-kitchen MVP/prototype.
The application demonstrates the complete workflow, but it does not yet have individual user authentication.
This means visitors to the public demo interact with the same demo kitchen rather than having private accounts.
A production version would add authentication and cloud-backed storage so every household could have its own:
- Pantry
- Recipes
- Grocery list
- Kitchen history
I chose not to rush an authentication system into the challenge build and risk breaking the core experience.
Instead, I focused on making the main PantryPal workflow functional from end to end.
๐ฎ What's Next?
There are several directions I would like to explore after this MVP:
- ๐ User authentication and private household pantries
- ๐ฑ Better mobile-first experience
- ๐ท Receipt and ingredient scanning
- ๐ท๏ธ Barcode scanning
- ๐ฅ Nutrition information
- ๐๏ธ Voice interaction
- ๐ Expiry notifications
- ๐ฅ Shared household accounts
- ๐ Pantry usage analytics
- ๐พ An interactive PantryPal mascot
The biggest next step would be moving from the current single-kitchen prototype to private, persistent household pantries.
My Agent Session
I used AI assistance during development for brainstorming, debugging, understanding implementation choices, and iterating on PantryPal.
I did not save a DevRelay agent session for this build.
Prize Categories
๐ Best Use of Gemma
PantryPal uses Gemma 3 4B as its AI intelligence layer for pantry-aware meal recommendations and natural-language ingredient estimation.
Rather than giving the model direct control over inventory, I combined Gemma with deterministic Python validation and user confirmation.
This lets Gemma do what it does best โ understand language and generate useful ideas โ while keeping important kitchen data predictable and controllable.
Final Thoughts
PantryPal started with a very ordinary question:
"What can I cook with what I already have?"
But while building it, I realized that the more interesting challenge wasn't simply adding AI to a kitchen app.
It was deciding when AI should make a suggestion and when normal software should take control.
That's the idea I want to continue developing with PantryPal:
AI suggests. User confirms. Database remembers.
๐ฅ๐ค Built for the Hacktoberfest 2026 Weekend Challenge โ Build for a Friend.
Top comments (0)