Skip to content

Repository files navigation

πŸ₯« Pantry

A smart kitchen inventory and recipe manager. Track what you have, find what you can cook, and never let food go to waste.

Next.js Convex License

Features

πŸ“¦ Inventory Tracking

  • 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

🍳 Recipe Management

  • 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

πŸ›’ Grocery Lists

  • 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

πŸ“… Meal Planning

  • Plan meals by day (breakfast, lunch, dinner)
  • Weekly calendar view
  • Generate shopping lists for your meal plan

πŸ€– AI Meal Planner

  • 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

πŸ’» CLI Access

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

Quick Start

Prerequisites

  • Node.js 18+
  • A Convex account (free tier works great)

Installation

# 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 dev

Environment Setup

Create .env.local:

NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud

Running

# Terminal 1: Convex backend (keeps schema in sync)
npx convex dev

# Terminal 2: Next.js frontend
npm run dev

Open http://localhost:3000 β€” you're ready to go.

CLI Reference

The CLI lives at cli/pantry.mjs and talks directly to your Convex backend.

Pantry Commands

# 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>

Recipe Commands

# 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

Grocery Commands

# 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

Meal Planning Commands

# 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

Tech Stack

Layer Tech
Frontend Next.js 15, React 19, Tailwind CSS 4
Backend Convex (real-time sync, serverless)
Icons Lucide React
CLI Node.js (ESM)

Project Structure

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

Data Model

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

Roadmap

  • 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)

Contributing

PRs welcome! Please open an issue first to discuss major changes.

License

MIT Β© Jack Gladowsky


Built by Jack + Hex 🦎

About

Kitchen inventory tracker

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages