🥘 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.

Log in or sign up for Devpost to join the conversation.