🥘 About the Project: PantryPal

PantryPal is a smart recipe recommendation app designed to help users cook efficiently with what they already have at home. It's your personal kitchen assistant — combining real-time ingredient-based search, personalized bookmarks, and AI-powered recipe suggestions.


✨ Inspiration

The idea stemmed from a common problem: “I have a few ingredients — now what can I cook?” We noticed how often people waste food due to indecision or lack of recipe ideas. PantryPal was born to solve that — with a smart, intuitive interface that actually helps.


🛠️ How We Built It

PantryPal is powered by a modern full-stack architecture:

🔧 Frontend

  • React + TypeScript using Vite for fast builds
  • TailwindCSS for beautiful, mobile-first UI
  • React Hooks for clean state management
  • Component-based architecture for scalability

🌐 Backend & Data

  • MealDB API: Provides a reliable source of recipe data based on ingredients.
  • Supabase: Handles authentication, real-time session management, and secure storage of user data (profiles and bookmarks).
  • RLS Policies & SQL Triggers: Enforce per-user access and automatically create profile entries upon signup.

🧠 AI-Powered Semantic Search

  • Custom ML Backend hosted on Hugging Face Spaces
  • Built using Docker + FastAPI
  • Accepts ingredient queries → returns semantically matched recipes using sentence-transformers and cosine similarity

🔐 Key Features

  • Ingredient-Based Search: Search meals using what’s available in your pantry.
  • Bookmarking System: Save favorite recipes to your profile.
  • Smart Recommendations: Even if no exact match is found, PantryPal suggests semantically similar recipes.
  • User Authentication: Secure signup/login via Supabase.
  • Persistent State: Bookmarks and sessions are tied to user accounts.

📚 What We Learned

  • How to integrate Supabase Auth with row-level security
  • Building modular, maintainable React components
  • Creating and deploying custom Hugging Face ML models with Docker
  • Using FastAPI to expose embedding-based recommendations
  • Handling state management and session persistence in React

🧩 Challenges Faced

  • Silent Auto-login: Supabase session persisted across tabs, causing confusion during testing
  • RLS Conflicts: Profiles weren’t updating due to missing triggers and policy issues — resolved with custom SQL migrations
  • Bookmark Bugs: Ensured unique bookmarks with database constraints and real-time icon updates
  • Email Verification Issues on Mobile: Redirection failed due to localhost-only redirect URLs — to be fixed later

🚀 What’s Next for Our Project?

  • 📈 Learn User Preferences: We'll begin tracking user choices to understand their taste and cooking habits over time.
  • 🧠 Implement Recommendation Engine: Using the data we collect, we’ll build a lightweight ML-based recommendation system to suggest personalized recipes.
  • 🍽️ Expand Recipe Database: We'll increase the number of available recipes by integrating more categories and data sources beyond MealDB.
  • 💾 Offline Pantry Support: Users will be able to save their pantry data locally and sync it when back online.
  • 🔐 Advanced Account Features: Enable profile editing, delete account, and pantry history for better user control.
  • 📱 Mobile Optimization: Improve the mobile experience for recipe browsing and pantry management on the go.
  • 📊 Analytics Dashboard (Optional): Build a simple dashboard for users to see trends, e.g., most cooked cuisines or favorite ingredients.

Bolt.new Chat Links

link-1 link-2 link-3 link-4 link-5 link-6

PantryPal isn’t just another recipe app. It’s an intelligent kitchen companion that understands your ingredients — and your taste.


Built With

Share this project:

Updates