A smart kitchen inventory and recipe manager. Track what you have, find what you can cook, and never let food go to waste.
- Organize items by location: fridge, freezer, pantry, spices
- Track quantities and expiration dates
- Color-coded expiry warnings (red/yellow/green)
- Quick "use" action to remove items as you cook
- Store recipes with ingredients, instructions, prep/cook times
- Tag-based organization
- Full-text search
- Smart matching: instantly see which recipes you can make with what's on hand
- Auto-generate shopping lists from recipes
- Automatically excludes items you already have
- Check off items as you shop
- Link items back to their source recipe
- Plan meals by day (breakfast, lunch, dinner)
- Weekly calendar view
- Generate shopping lists for your meal plan
- Generate a week's meal plan based on your preferences
- Set filters: household size, eating out days, quick weekday meals
- Automatically accounts for recipe servings and leftovers
- Prioritizes ingredients that are expiring soon
- Avoids repeating the same recipe within 3 days
Full command-line interface for quick access and automation:
pantry list # Show all items by location
pantry expiring --days=7 # What's going bad soon?
pantry recipes can-make # What can I cook right now?
pantry grocery from-recipe ID # Add missing ingredients to list- Node.js 18+
- A Convex account (free tier works great)
# Clone the repo
git clone https://github.com/jackgladowsky/pantry-app.git
cd pantry-app
# Install dependencies
npm install
# Set up Convex (follow the prompts to create a new project)
npx convex devCreate .env.local:
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud# Terminal 1: Convex backend (keeps schema in sync)
npx convex dev
# Terminal 2: Next.js frontend
npm run devOpen http://localhost:3000 β you're ready to go.
The CLI lives at cli/pantry.mjs and talks directly to your Convex backend.
# List everything, grouped by location
pantry list
# Filter by location
pantry list --location=fridge
# What's expiring soon?
pantry expiring # Default: 7 days
pantry expiring --days=3
# Add an item
pantry add "Milk" --qty="1 gallon" --location=fridge --expires=2026-02-10
# Remove an item
pantry rm <item-id># List all recipes
pantry recipes
# Search recipes
pantry recipes search "chicken"
# View full recipe
pantry recipes view <recipe-id>
# What can I make with current inventory?
pantry recipes can-make# View grocery list
pantry grocery
# Add item manually
pantry grocery add "Eggs" --qty="1 dozen"
# Add missing ingredients from a recipe
pantry grocery from-recipe <recipe-id>
# Check/uncheck an item
pantry grocery check <item-id>
# Clear all checked items
pantry grocery clear# Today's meals
pantry meals
# This week's plan
pantry meals week
# Plan a meal
pantry meals plan 2026-02-05 --dinner <recipe-id>
pantry meals plan 2026-02-05 --lunch "Leftover pizza"
# Generate shopping list for the week
pantry meals shopping
# AI meal planning
pantry meals generate # Generate with defaults
pantry meals generate --people=4 --eating-out=2 # Customize
pantry meals generate --quick-weekdays # Prefer quick meals Mon-Fri
pantry meals generate --use-expiring # Prioritize expiring items
pantry meals apply-generated # Apply the generated plan
pantry meals apply-generated --add-grocery # Also add shopping list| Layer | Tech |
|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 4 |
| Backend | Convex (real-time sync, serverless) |
| Icons | Lucide React |
| CLI | Node.js (ESM) |
pantry-app/
βββ app/ # Next.js app router pages
βββ convex/ # Convex backend
β βββ schema.ts # Database schema
β βββ pantry.ts # Pantry queries/mutations
β βββ recipes.ts # Recipe queries/mutations
β βββ groceryList.ts # Grocery list logic
β βββ mealPlans.ts # Meal planning logic
βββ cli/
β βββ pantry.mjs # CLI tool
βββ README.md
pantryItems: Items with name, quantity, location, expiry date recipes: Name, ingredients (with quantities), instructions, tags, times groceryList: Shopping items with checked status, optional recipe link mealPlans: Daily meal schedules linking to recipes or custom meals
- Barcode scanning for quick item entry
- Receipt OCR for bulk import
- Nutrition tracking
- Recipe suggestions based on expiring items
- Shared household support
- Mobile app (React Native)
PRs welcome! Please open an issue first to discuss major changes.
MIT Β© Jack Gladowsky
Built by Jack + Hex π¦