Your intelligent cooking companion powered by Google Gemini AI
An advanced web application that transforms your available ingredients into delicious recipes, helps plan your meals, tracks nutrition, and provides personalized cooking advice. Built with Next.js, Python Flask, and Google Gemini 2.0.
Try it now! No installation required: https://twistedzenny.netlify.app/
๐ Anyone can use the live site for free - just visit the link and start discovering recipes!
- ๐ฏ Autoโplan your week to calorie/macro goals
- ๐ฅซ Pantry manager with pantryโaware recipe prioritization
- ๐ฐ Cost per serving on cards + Budget filter and Budget Mode
- ๐ Smart ingredient substitutions with oneโtap apply/reset (used in shopping list)
- ๐บ๏ธ Region selector (US/EU/IN) for cost estimates and currency display
- ๐ฐ "Whatโs New" strip on the homepage with quick actions
- ๐ Ingredient swap comparison: "Original" vs "Your list"
- ๐ฏ Smart AI Recipe Generation - Get personalized recipes from your ingredients
- โญ Favorites System - Save and organize your favorite recipes
- ๐ Weekly Meal Planner - Plan 7 days of meals with automatic shopping lists
- ๐ช Nutritional Tracking - View calories, protein, carbs, and fats per serving
- ๐ฝ๏ธ Recipe Scaling - Adjust servings with automatic ingredient recalculation
- ๐ Advanced Filters - Filter by time, difficulty, cuisine, and diet type
- ๐ค AI Chat Assistant - Get cooking advice and substitution suggestions
- โญ Community Ratings - Rate recipes and see what others love
- ๐จ Beautiful UI - Modern dark theme with smooth animations
- ๐ Lightning Fast - Optimized for speed with progressive image loading
- ๐ฅซ PantryโAware Suggestions - Prioritize recipes that use what you already have
- ๐ฐ CostโAware Cooking - See $/serving, filter by budget, and prefer cheaper swaps
- ๐ Smart Substitutions - Oneโtap ingredient swaps with reasons and reset
- ๐ฏ GoalโBased Planning - Autoโfill the week to hit your calories/macros
- Ingredient-Based Search: Enter your available ingredients and get personalized recipe recommendations
- Dish Search: Find variations of specific dishes (e.g., "Pasta Carbonara")
- Trending Recipes: Discover popular recipes from around the world
- Deterministic Image System: Accurate food images using curated Unsplash photos with 24+ categories
- Interactive Chatbot: Get answers about recipes, substitutions, and cooking techniques
- Context-Aware: Chat remembers your current recipe for relevant suggestions
- Real-Time Streaming: Fast AI responses powered by Gemini 2.0 Flash
- Save Recipes: Heart your favorite recipes for quick access
- Persistent Storage: Favorites saved in browser localStorage
- Quick View: Dedicated favorites page with all saved recipes
- 7-Day Calendar: Plan breakfast, lunch, and dinner for the entire week
- Drag & Drop: Easy recipe assignment to meal slots
- Shopping List Generator: Automatically aggregate ingredients from planned meals
- One-Click Copy: Copy shopping list to clipboard instantly
- AutoโPlan to Goals: Fill the week targeting your daily calories/macros
- Time Filter: Filter by cooking time (15min, 30min, 45min, 1hr+)
- Difficulty Filter: Choose Easy, Medium, or Hard recipes
- Cuisine Filter: Browse by cuisine type (Indian, Italian, Chinese, Mexican, Thai, etc.)
- Diet Filters: Filter by Veg, Non-Veg, or Vegan options
- Budget Filter: Any, or under $2/$5/$8/$12 per serving
- Servings Adjustment: Scale recipes up or down with +/- buttons
- Smart Scaling: Automatically recalculates ingredient quantities
- Nutrition Scaling: Macros adjust proportionally with servings
- Comprehensive Data: View calories, protein, carbs, and fats per serving
- Visual Badges: Color-coded nutritional info on recipe cards
- Detailed Panel: Full macro breakdown in recipe modal
- 5-Star Ratings: Rate recipes to help others discover great dishes
- Average Ratings: See community ratings with total count
- Personal Tracking: Your ratings are remembered
- Dark Theme: Beautiful dark interface with gradients
- Glassmorphism: Modern backdrop blur effects
- Smooth Animations: Hover effects, scale transitions, and loading states
- Responsive Design: Works perfectly on mobile, tablet, and desktop
- Gradient Accents: Signature yellow โ pink โ purple theme throughout
- Add pantry items (onions, rice, milk, etc.) and the app prioritizes recipes that use them.
- Pantry items are excluded from shopping lists.
- Toggle โ๐ฆ Prioritize Pantryโ to sort by pantry match.
- Each recipe shows a rough โ$X.XX per servingโ estimate.
- Filter results by budget and enable โ๏ฟฝ Budget Modeโ to prefer cheaper substitutions in the shopping list.
- Uses a lightweight keyword price map (tunable/regionโaware in future).
- Choose your region (US/EU/IN) to adjust costs and currency symbol.
- In the recipe modal, ingredients offer oneโtap โSwap โ โฆโ suggestions.
- Reasons are provided; cheaper swaps are highlighted in green.
- Applied swaps persist during the session and feed into the shopping list.
- Toggle โCompare swapsโ to view sideโbyโside: Original vs Your list.
- Clean search interface with ingredient and dish search modes
- Beautiful gradient buttons and dark theme
- Trending recipes button for quick inspiration
- Nutritional badges (calories, protein, carbs, fats)
- Heart icons for favoriting
- Diet type indicators (Veg/Non-Veg/Vegan)
- Cooking time and difficulty display
- Hover animations and gradient effects
- Large hero image with gradient overlay
- Servings scaler with +/- buttons
- Nutrition panel with per-serving macros
- Ingredient list with scaled quantities
- Pantry indicators and oneโtap swaps on ingredients
- Step-by-step instructions
- Rating system (1-5 stars)
- YouTube video search integration
- 7-day calendar view with "TODAY" badge
- Breakfast, lunch, dinner slots per day
- Custom dropdown styling with animations
- Shopping list generator
- Goals panel with AutoโFill button
- Beautiful gradient cards with hover effects
- Ingredient swaps are reflected in the shopping list; pantry items are autoโexcluded
- Grid view of all saved recipes
- Quick access to favorite dishes
- One-click to view full recipe
- Empty state with helpful message
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- Google Gemini API Key (Get one here)
- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:3000 in your browser
- Navigate to the backend directory:
cd backend- Create and activate a virtual environment:
python -m venv venv
# On Windows:
.\\venv\\Scripts\\activate
# On Mac/Linux:
source venv/bin/activate- Install Python dependencies:
pip install Flask flask-cors google-generativeai python-dotenv-
โ ๏ธ IMPORTANT - Configure Gemini API Key:- Open the
.envfile in thebackenddirectory - Replace
your_gemini_api_key_herewith your actual Gemini API key:GEMINI_API_KEY=your-actual-api-key-here - Save the file
- Get your FREE API key from: https://aistudio.google.com/app/apikey
- Open the
-
Start the Flask server:
python app.pyThe backend will run on http://127.0.0.1:5000
-
Choose Search Mode:
- ๐ฅ By Ingredients: Enter what you have (e.g.,
chicken, rice, tomatoes) - ๐ฝ๏ธ By Dish: Search for specific dishes (e.g.,
Chicken Biryani)
- ๐ฅ By Ingredients: Enter what you have (e.g.,
-
Apply Filters (Optional):
- Select diet type: Veg / Non-Veg / Vegan
- After recipes load, use advanced filters for time, difficulty, and cuisine
-
Get Recipes: Click "Get Recipes" and wait for AI-generated suggestions
-
View Details: Click any recipe card to see:
- Full ingredient list with quantities
- Step-by-step instructions
- Nutritional information
- Adjustable servings
- Click the heart icon (๐ค) on any recipe card
- Access favorites anytime via the โญ Favorites button at the top
- Favorites are saved in your browser automatically
- Generate some recipes first
- Click ๐ Meal Planner button
- Use dropdowns to assign recipes to meal slots
- Click ๐ Generate Shopping List to get all ingredients
- Shopping list is copied to clipboard automatically
- Set daily calories/macros and click โก AutoโFill Week to Goals to populate the plan
- Open any recipe modal
- Use +/- buttons to adjust servings
- Ingredients and nutrition update automatically
- Click "Reset" to return to original serving size
- Click the ๐ฌ Chat Assistant button in header
- Ask questions about recipes, substitutions, or cooking techniques
- Chat remembers context from your current recipe
- Get instant AI-powered cooking advice
- Open any recipe modal
- Click stars to rate (1-5 stars)
- Your rating is saved and contributes to average rating
- See community ratings on recipe cards
- Click ๐ฅซ Pantry in the filters row.
- Add items like
onion, riceand close the panel. - Toggle ๐ฆ Prioritize Pantry to sort recipes by pantry match.
- Shopping lists automatically skip items that are already in your pantry.
- Choose a ๐ธ Budget filter (e.g., Under $5/serv).
- Toggle ๐ฐ Budget Mode to prefer cheaper substitutions in the shopping list.
- See perโserving cost on recipe cards, with regionโspecific currency.
- Switch ๐บ๏ธ Region in the filters to adjust estimates.
- Open a recipe modal and scroll to Ingredients.
- Tap a โSwap โ โฆโ chip to apply; tap Reset to undo.
- Toggle Compare swaps to see Original vs Your list.
- Applied swaps are reflected in your shopping list.
- Framework: Next.js 16 with Turbopack
- Language: TypeScript
- Styling: Tailwind CSS v3 with custom animations
- UI Components: React 19
- Markdown: react-markdown with remark-gfm
- Storage: Browser localStorage for favorites and meal plans
- Framework: Python Flask 3.0+
- AI Model: Google Gemini 2.0 Flash Experimental
- APIs:
- Gemini Generative AI
- Unsplash (for curated food images)
- CORS: flask-cors for cross-origin requests
- Environment: python-dotenv for configuration
- Data Storage: JSON files (ratings, image cache)
- Server: Gunicorn-ready for production deployment
- Deterministic Images: Token-based category matching with confidence scoring
- Recipe Scaling: Smart ingredient quantity recalculation
- Meal Planning: Date-based recipe assignment with ingredient aggregation
- Nutritional Data: AI-generated macro estimates per serving
- Rating System: Persistent JSON storage with average calculation
- Filters: Client-side filtering for instant results
- Fast Recipe Loading: Recipes displayed immediately, images load progressively
- Reduced AI Load: 3 recipes per search (optimized from 5)
- Parallel Image Fetching: Non-blocking image loads
- Cached Images: Deterministic URLs prevent duplicate API calls
- Client-Side Filtering: Instant filter application without backend calls
- Dark Theme: Easy on the eyes for late-night cooking
- Gradient Accents: Signature yellow โ pink โ purple branding
- Glassmorphism: Modern backdrop blur effects
- Micro-interactions: Hover states, scale transitions, and smooth animations
- Responsive: Mobile-first design that scales to any screen size
- โ The Gemini API is FREE to use with generous rate limits
- โ Make sure both frontend and backend servers are running
- โ Requires internet connection for AI API communication
- โ Favorites and meal plans are saved in browser (localStorage)
- โ Recipe ratings are stored in backend JSON file
- โ Images are cached for faster subsequent loads
The Next.js frontend is configured for Netlify deployment with netlify.toml.
- Local:
python app.py(development) - Gunicorn: Production-ready WSGI server included
- Cloud: Deploy to Heroku, Railway, or any Python hosting
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
This project is open source and available for educational purposes.
Built with โค๏ธ by TwistedVision518
- GitHub: @TwistedVision518
- Instagram: @pranavislost
Zenny - Your AI-powered cooking companion ๐ณโจ
- GitHub: TwistedVision518
- Instagram: @pranavislost
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
