Skip to content

About

AI-powered recipe platform: snap your pantry, get recipes you can cook now. Built with Next.js, Tailwind, Strapi, PostgreSQL and Google Gemini, with Clerk auth and Arcjet security. Deployed on Vercel.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍳 Cookify β€” AI Recipe Platform

Your Smart Kitchen β€” Cook Smarter, Waste Less, Eat Better

Next.js React Strapi PostgreSQL Gemini AI Clerk Arcjet License

⚠️ Note: This is a free-tier deployment. If you encounter any error while using the app, please reload the page β€” it usually resolves the issue instantly (often caused by cold starts on free hosting tiers).

Live Demo Β· Report Bug Β· Request Feature


πŸ“– About The Project

Cookify is a full-stack, AI-powered recipe platform that solves a problem everyone faces β€” "What do I cook with what I already have?"

Snap a photo of your pantry or fridge, and Cookify's AI instantly identifies your ingredients and generates personalized recipe suggestions with match percentages. Explore thousands of recipes across 37 world cuisines and 14 categories, generate detailed AI recipes for any dish, save your favorites, and download them as PDFs β€” all in one clean, modern platform.

This isn't just a wrapper around a chatbot. Cookify is a production-ready application with real authentication, a persistent database, bot protection, rate limiting, and a freemium subscription model β€” built to demonstrate real-world full-stack engineering.


πŸ“± Best Experience: For the full experience β€” especially the AI Pantry Scan with camera β€” open Cookify on your smartphone/mobile browser. Desktop works too, but mobile lets you use the live camera to scan ingredients directly.

✨ Features

  • πŸ“Έ AI Pantry Scanning β€” Take a photo of your ingredients, Gemini AI identifies them instantly
  • πŸ§‘β€πŸ³ AI Recipe Suggestions β€” Get personalized recipe recommendations based on what's in your pantry, with match percentage scoring
  • 🌍 Explore World Cuisines β€” Browse recipes across 37 countries with flag-based navigation
  • 🍽️ Browse by Category β€” 14 categories from breakfast to dessert, seafood to vegan
  • πŸ€– Generate Any Recipe β€” Type any dish name and get a complete AI-generated recipe with ingredients, step-by-step instructions, and nutrition info
  • πŸ“š Digital Cookbook β€” Save your favorite recipes and access them anytime
  • πŸ“„ PDF Export β€” Download any recipe as a clean, printable PDF
  • πŸ” Secure Authentication β€” Sign up/sign in powered by Clerk
  • πŸ›‘οΈ Enterprise-Grade Security β€” Bot protection and rate limiting via Arcjet
  • πŸ’³ Freemium Model β€” Free tier with usage limits, Pro tier with unlimited access + premium features (nutrition analysis, chef tips, substitutions)

πŸ› οΈ Tech Stack

Frontend

Backend & Database

  • Strapi β€” Headless CMS for content management
  • NEON β€” Serverless PostgreSQL database

AI & External APIs

Auth & Security

  • Clerk β€” Authentication, session management & billing
  • Arcjet β€” Bot protection, shield & rate limiting

Deployment

  • Vercel β€” Frontend hosting
  • Strapi Cloud β€” Backend hosting

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              USER (Browser)                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         NEXT.JS FRONTEND (Vercel)            β”‚
β”‚   App Router Β· Server Actions Β· ShadcnUI     β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚             β”‚             β”‚
β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  STRAPI   β”‚ β”‚  GEMINI   β”‚ β”‚  EXTERNAL     β”‚
β”‚   CMS     β”‚ β”‚    AI     β”‚ β”‚  APIs         β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚  TheMealDB    β”‚
      β”‚                     β”‚  Unsplash     β”‚
β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”               β”‚  Clerk        β”‚
β”‚   NEON    β”‚               β”‚  Arcjet       β”‚
β”‚PostgreSQL β”‚               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‚ Project Structure

Cookify/
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ actions/          # Server Actions (mealdb, pantry, recipe)
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ (auth)/       # Sign in / Sign up (Clerk)
β”‚   β”‚   └── (main)/       # Dashboard, Pantry, Recipes
β”‚   β”œβ”€β”€ components/       # Reusable UI components
β”‚   β”œβ”€β”€ hooks/            # Custom hooks (use-fetch)
β”‚   β”œβ”€β”€ lib/               # Arcjet, Clerk helpers, utils
β”‚   └── proxy.js          # Auth & security middleware
β”‚
└── backend/               # Strapi CMS
    β”œβ”€β”€ config/            # Database, server, plugin config
    β”œβ”€β”€ src/api/           # Content types (recipes, pantry, users)
    └── database/           # Migrations

πŸš€ Getting Started

Prerequisites

Installation

1. Clone the repository

git clone https://github.com/soham-88/Cookify---AI-Recipes-Platform.git
cd Cookify---AI-Recipes-Platform

2. Setup the Backend (Strapi)

cd backend
npm install

Create a .env file in backend/:

HOST=0.0.0.0
PORT=1337
APP_KEYS=key1,key2,key3,key4
API_TOKEN_SALT=your_api_token_salt
ADMIN_JWT_SECRET=your_admin_jwt_secret
TRANSFER_TOKEN_SALT=your_transfer_token_salt
JWT_SECRET=your_jwt_secret
DATABASE_CLIENT=postgres
DATABASE_URL=your_neon_postgresql_connection_string

Start Strapi:

npm run develop

Strapi admin will be available at http://localhost:1337/admin

3. Setup the Frontend

cd ../frontend
npm install

Create a .env.local file in frontend/:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_STRAPI_URL=http://localhost:1337
STRAPI_API_TOKEN=your_strapi_api_token
GEMINI_API_KEY=your_gemini_api_key
UNSPLASH_ACCESS_KEY=your_unsplash_access_key
NEXT_PUBLIC_ARCJET_KEY=your_arcjet_key

Start the frontend:

npm run dev

4. Open the app

Visit http://localhost:3000 πŸŽ‰


πŸ’³ Plans

Feature Free Pro
Pantry Scans 10/month Unlimited
AI Meal Recommendations 5/month Unlimited
Recipe Generation Standard Unlimited
Nutrition Info ❌ βœ…
Chef's Tips & Tricks ❌ βœ…
Ingredient Substitutions ❌ βœ…
PDF Download βœ… βœ…
Price $0 $1/month

πŸ—ΊοΈ Roadmap

  • Meal planning with weekly calendar
  • Auto-generated shopping lists from missing ingredients
  • Dietary restriction filters (vegan, gluten-free, keto)
  • Recipe ratings & reviews
  • Dark mode
  • Mobile app (React Native)
  • Social recipe sharing

πŸ› Known Limitations

  • TheMealDB free tier has inconsistent cuisine naming (handled via fallback resolution)
  • Gemini API free tier limited to 1,500 requests/day
  • Unsplash API free tier limited to 50 requests/hour
  • Billing currently in test/development mode via Clerk

πŸ‘€ Author

Soham Pawar


πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.


πŸ™ Acknowledgments


⭐ If you found this project interesting, consider giving it a star!

About

AI-powered recipe platform: snap your pantry, get recipes you can cook now. Built with Next.js, Tailwind, Strapi, PostgreSQL and Google Gemini, with Clerk auth and Arcjet security. Deployed on Vercel.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages