<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aashish Dhanawat</title>
    <description>The latest articles on DEV Community by Aashish Dhanawat (@ashish_dhanawat_11c326685).</description>
    <link>https://dev.to/ashish_dhanawat_11c326685</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4159589%2F32baff2e-b420-42fd-8777-cb70c72bff22.png</url>
      <title>DEV Community: Aashish Dhanawat</title>
      <link>https://dev.to/ashish_dhanawat_11c326685</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashish_dhanawat_11c326685"/>
    <language>en</language>
    <item>
      <title>PantryPal AI: Your Kitchen Remembers, So You Don't Have To</title>
      <dc:creator>Aashish Dhanawat</dc:creator>
      <pubDate>Mon, 05 Oct 2026 05:26:56 +0000</pubDate>
      <link>https://dev.to/ashish_dhanawat_11c326685/pantrypal-ai-your-kitchen-remembers-so-you-dont-have-to-2a21</link>
      <guid>https://dev.to/ashish_dhanawat_11c326685/pantrypal-ai-your-kitchen-remembers-so-you-dont-have-to-2a21</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;PantryPal AI&lt;/strong&gt;, a smart kitchen companion designed for a friend who cooks for herself.&lt;/p&gt;

&lt;p&gt;The idea came from a simple everyday problem: when you cook regularly, it becomes surprisingly difficult to remember everything in your kitchen.&lt;/p&gt;

&lt;p&gt;What ingredients do I still have?&lt;br&gt;&lt;br&gt;
How much rice is left?&lt;br&gt;&lt;br&gt;
What is about to expire?&lt;br&gt;&lt;br&gt;
What can I cook without buying more groceries?&lt;br&gt;&lt;br&gt;
What should I add to my shopping list?&lt;/p&gt;

&lt;p&gt;I wanted to build something that could act like a &lt;strong&gt;memory for the kitchen&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That became &lt;strong&gt;PantryPal AI&lt;/strong&gt;. 🥘&lt;/p&gt;

&lt;p&gt;The core idea behind the project is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI suggests. User confirms. Database remembers.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;h3&gt;
  
  
  📦 Smart Pantry
&lt;/h3&gt;

&lt;p&gt;Users can add ingredients along with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quantity&lt;/li&gt;
&lt;li&gt;Unit&lt;/li&gt;
&lt;li&gt;Category&lt;/li&gt;
&lt;li&gt;Low-stock threshold&lt;/li&gt;
&lt;li&gt;Expiry date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PantryPal keeps track of what is available, what is running low, and what should be used soon.&lt;/p&gt;
&lt;h3&gt;
  
  
  🤖 What Can I Cook?
&lt;/h3&gt;

&lt;p&gt;Users can ask PantryPal for meal ideas based on what is actually available in their pantry.&lt;/p&gt;

&lt;p&gt;They can choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Breakfast, lunch, dinner, snack, or anything&lt;/li&gt;
&lt;li&gt;Number of servings&lt;/li&gt;
&lt;li&gt;Cooking preference&lt;/li&gt;
&lt;li&gt;Whether to prioritize ingredients that may expire soon&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemma then uses the pantry as context to generate relevant meal ideas.&lt;/p&gt;
&lt;h3&gt;
  
  
  🍽️ I Made Something
&lt;/h3&gt;

&lt;p&gt;Not every meal comes from a saved recipe.&lt;/p&gt;

&lt;p&gt;A user can simply tell PantryPal what they cooked, for example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I made potato and tomato curry.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gemma estimates which pantry ingredients may have been used.&lt;/p&gt;

&lt;p&gt;However, I intentionally &lt;strong&gt;do not allow the AI to immediately modify inventory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;PantryPal first shows the estimate to the user. They can review it, change quantities, add or remove ingredients, and then confirm it.&lt;/p&gt;

&lt;p&gt;Only after confirmation does PantryPal update the pantry.&lt;/p&gt;
&lt;h3&gt;
  
  
  📖 My Recipes
&lt;/h3&gt;

&lt;p&gt;Users can also save their own recipes with exact ingredient quantities.&lt;/p&gt;

&lt;p&gt;When they cook a saved recipe, PantryPal checks whether the required ingredients are available and updates the pantry after confirmation.&lt;/p&gt;

&lt;p&gt;I also added automatic unit conversion between:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;kg ↔ g&lt;/code&gt; and &lt;code&gt;L ↔ ml&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pantry before cooking:
Rice = 2 kg

Recipe uses:
Rice = 300 g

Pantry after cooking:
Rice = 1.7 kg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  🛒 Smart Grocery List
&lt;/h3&gt;

&lt;p&gt;PantryPal can identify low-stock ingredients and help build a grocery list.&lt;/p&gt;

&lt;p&gt;Users can also manually add grocery items.&lt;/p&gt;

&lt;p&gt;When an item is purchased, PantryPal can add it back into the pantry, connecting the grocery and inventory flows.&lt;/p&gt;
&lt;h3&gt;
  
  
  ⚠️ Expiry Awareness
&lt;/h3&gt;

&lt;p&gt;Ingredients approaching their expiry date appear as &lt;strong&gt;Use Soon&lt;/strong&gt; items.&lt;/p&gt;

&lt;p&gt;Users can also ask Gemma to prioritize these ingredients when suggesting meals.&lt;/p&gt;

&lt;p&gt;This turns a simple question like "What should I cook?" into a small way of helping reduce food waste.&lt;/p&gt;


&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🚀 &lt;strong&gt;Try PantryPal AI here:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/" rel="noopener noreferrer"&gt;https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The current deployment is an MVP/demo. It uses SQLite and may reset its data when the Streamlit deployment restarts or redeploys.&lt;/p&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;The complete project is open source on GitHub:&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ashishdhanawat111-oss" rel="noopener noreferrer"&gt;
        ashishdhanawat111-oss
      &lt;/a&gt; / &lt;a href="https://github.com/ashishdhanawat111-oss/PantryPal" rel="noopener noreferrer"&gt;
        PantryPal
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI-powered smart kitchen companion for pantry, recipes and groceries.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🥘 PantryPal AI&lt;/h1&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Your kitchen remembers, so you don't have to.&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Instead of being just another recipe chatbot, PantryPal combines &lt;strong&gt;AI suggestions with structured pantry data&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI suggests. User confirms. Database remembers.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Live Demo&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Try PantryPal AI here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/" rel="nofollow noopener noreferrer"&gt;https://pantrypal-drhiffdjnrxkrempz9bcak.streamlit.app/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repository:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ashishdhanawat111-oss/PantryPal" rel="noopener noreferrer"&gt;https://github.com/ashishdhanawat111-oss/PantryPal&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PantryPal is currently an MVP deployed on Streamlit Community Cloud.&lt;br&gt;
Its SQLite database is intended for demonstration purposes and may reset when the app restarts or redeploys.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 The Problem&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Keeping track of a kitchen sounds simple until you have to remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What ingredients are currently available?&lt;/li&gt;
&lt;li&gt;How much of each ingredient is left?&lt;/li&gt;
&lt;li&gt;What is about to expire?&lt;/li&gt;
&lt;li&gt;What can I cook using what I already have?&lt;/li&gt;
&lt;li&gt;What do I need to buy?&lt;/li&gt;
&lt;li&gt;How much should be removed…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ashishdhanawat111-oss/PantryPal" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ashishdhanawat111-oss/PantryPal" rel="noopener noreferrer"&gt;https://github.com/ashishdhanawat111-oss/PantryPal&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built PantryPal using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — application logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; — user interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; — pantry, recipe, and grocery storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3 4B&lt;/strong&gt; — open-weight AI model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hugging Face Inference API&lt;/strong&gt; — model inference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture intentionally separates AI tasks from deterministic application logic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  User
                    │
                    ▼
              Streamlit UI
                    │
          ┌─────────┴─────────┐
          ▼                   ▼
      Gemma AI           Python Logic
          │                   │
   Meal suggestions      Validation
   Interpretation        Unit conversion
   Estimation            Pantry updates
                              │
                              ▼
                            SQLite
                     Pantry / Recipes /
                          Groceries
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  An important lesson while building it
&lt;/h3&gt;

&lt;p&gt;One of the most interesting things I learned while building PantryPal was &lt;strong&gt;where NOT to trust an LLM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Initially, I tried asking Gemma to generate complete recipes with exact ingredient quantities.&lt;/p&gt;

&lt;p&gt;The meal ideas were useful, but the quantities were not always reliable enough to directly modify someone's inventory.&lt;/p&gt;

&lt;p&gt;For example, an AI-generated meal idea might be perfectly reasonable while its estimated ingredient quantities are unrealistic.&lt;/p&gt;

&lt;p&gt;Instead of endlessly prompt-engineering around this problem, I changed the architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma handles the fuzzy tasks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Understanding what the user cooked&lt;/li&gt;
&lt;li&gt;Suggesting meals&lt;/li&gt;
&lt;li&gt;Interpreting natural language&lt;/li&gt;
&lt;li&gt;Estimating possible ingredient usage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Python handles the exact tasks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Quantity validation&lt;/li&gt;
&lt;li&gt;Unit conversion&lt;/li&gt;
&lt;li&gt;Inventory calculations&lt;/li&gt;
&lt;li&gt;Database updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And whenever an AI estimate could affect inventory, &lt;strong&gt;the user gets the final confirmation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That experience became the main design principle of PantryPal:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI suggests → User confirms → Database remembers&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;I chose &lt;strong&gt;Gemma&lt;/strong&gt;, 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.&lt;/p&gt;

&lt;p&gt;For PantryPal, separating the application from the model is important.&lt;/p&gt;

&lt;p&gt;The pantry system does not belong to Gemma.&lt;/p&gt;

&lt;p&gt;The recipes, grocery system, validation, calculations, unit conversions, and database are independent Python components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma is the intelligence layer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because of this separation, the AI layer can evolve independently.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Working with an open-weight model also made me think more carefully about how AI should actually fit into a product.&lt;/p&gt;

&lt;p&gt;One of the biggest lessons from building PantryPal was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Using more AI does not automatically make a product better.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For understanding natural language and generating meal ideas, Gemma is useful.&lt;/p&gt;

&lt;p&gt;For subtracting &lt;strong&gt;300 grams from 2 kilograms&lt;/strong&gt;, normal code is better.&lt;/p&gt;

&lt;p&gt;The interesting engineering decision is deciding where each belongs.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏠 Current MVP Limitation
&lt;/h2&gt;

&lt;p&gt;The deployed PantryPal version is currently a &lt;strong&gt;single-kitchen MVP/prototype&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The application demonstrates the complete workflow, but it does not yet have individual user authentication.&lt;/p&gt;

&lt;p&gt;This means visitors to the public demo interact with the same demo kitchen rather than having private accounts.&lt;/p&gt;

&lt;p&gt;A production version would add authentication and cloud-backed storage so every household could have its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pantry&lt;/li&gt;
&lt;li&gt;Recipes&lt;/li&gt;
&lt;li&gt;Grocery list&lt;/li&gt;
&lt;li&gt;Kitchen history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I chose not to rush an authentication system into the challenge build and risk breaking the core experience.&lt;/p&gt;

&lt;p&gt;Instead, I focused on making the main PantryPal workflow functional from end to end.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 What's Next?
&lt;/h2&gt;

&lt;p&gt;There are several directions I would like to explore after this MVP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔐 User authentication and private household pantries&lt;/li&gt;
&lt;li&gt;📱 Better mobile-first experience&lt;/li&gt;
&lt;li&gt;📷 Receipt and ingredient scanning&lt;/li&gt;
&lt;li&gt;🏷️ Barcode scanning&lt;/li&gt;
&lt;li&gt;🥗 Nutrition information&lt;/li&gt;
&lt;li&gt;🎙️ Voice interaction&lt;/li&gt;
&lt;li&gt;🔔 Expiry notifications&lt;/li&gt;
&lt;li&gt;👥 Shared household accounts&lt;/li&gt;
&lt;li&gt;📊 Pantry usage analytics&lt;/li&gt;
&lt;li&gt;🐾 An interactive PantryPal mascot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest next step would be moving from the current single-kitchen prototype to &lt;strong&gt;private, persistent household pantries&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used AI assistance during development for brainstorming, debugging, understanding implementation choices, and iterating on PantryPal.&lt;/p&gt;

&lt;p&gt;I did not save a DevRelay agent session for this build.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🏆 Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;PantryPal uses &lt;strong&gt;Gemma 3 4B&lt;/strong&gt; as its AI intelligence layer for pantry-aware meal recommendations and natural-language ingredient estimation.&lt;/p&gt;

&lt;p&gt;Rather than giving the model direct control over inventory, I combined Gemma with deterministic Python validation and user confirmation.&lt;/p&gt;

&lt;p&gt;This lets Gemma do what it does best — &lt;strong&gt;understand language and generate useful ideas&lt;/strong&gt; — while keeping important kitchen data predictable and controllable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;PantryPal started with a very ordinary question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What can I cook with what I already have?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But while building it, I realized that the more interesting challenge wasn't simply adding AI to a kitchen app.&lt;/p&gt;

&lt;p&gt;It was deciding &lt;strong&gt;when AI should make a suggestion and when normal software should take control&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's the idea I want to continue developing with PantryPal:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI suggests. User confirms. Database remembers.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🥘🤖 &lt;strong&gt;Built for the Hacktoberfest 2026 Weekend Challenge — Build for a Friend.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
