A pantry and recipe webapp that knows what's in your kitchen. Snap a receipt, get your groceries logged automatically, then ask the app what to cook with what you have.
Live: kitchen-mania.vercel.app
- Pantry tracking with quantities, expiration dates, and auto-assigned emojis
- Receipt scanning (GPT-4o vision) that extracts items, prices, and merchant
- Bulk text parsing for quick item entry
- AI recipe generation from whatever's currently in your pantry
- Recipe image generation via DALL-E, stored permanently in Supabase
- Price history per item per merchant
- Imperial / metric unit toggle
- Per-user accounts with cloud sync (Supabase Auth + Postgres)
- Next.js 15.4 (App Router) + React 19 + TypeScript
- Tailwind CSS v4, shadcn/ui, Radix primitives
- Supabase (Postgres, Auth, Storage)
- OpenAI API: GPT-3.5-turbo (text), GPT-4o (vision), DALL-E (images)
- Deployed on Vercel
Requirements: Node 18+, a Supabase project, and (optional) an OpenAI API key.
-
Clone and install:
git clone https://github.com/zoubiromar/kitchen-mania.git cd kitchen-mania npm install -
Create
.env.localin the project root:NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key NEXT_PUBLIC_APP_URL=http://localhost:3000 OPENAI_API_KEY=your_openai_keyWithout
OPENAI_API_KEY, manual entry and price tracking still work. AI features fall back to mock data. -
Set up the database. In the Supabase SQL editor, run:
supabase-schema.sql(tables:profiles,pantry_items,recipes,price_tracker_items, plus RLS policies)supabase_storage_setup.sql(creates therecipe-imagesstorage bucket and its policies)
-
Run the dev server:
npm run dev
Open http://localhost:3000.
Push to a GitHub repo, import it on Vercel, and set the same four env vars in the Vercel project settings. The included vercel.json already raises the function timeout to 30s for the receipt-parse, recipe-recommend, and image-generation routes.
In your Supabase project's Auth settings, set:
- Site URL: your production URL
- Redirect URLs: include
<your-url>/auth/confirmso email confirmation lands on the right page
src/
app/
api/ # API routes (OpenAI calls, receipt parsing, image generation)
pantry/ # Pantry page
recipes/ # Recipe pages
tracker/ # Price tracker
components/ # UI components
lib/ # Supabase client, database helpers, image storage utils
utils/ # Misc helpers
I wanted a single project that exercised the full stack I keep reaching for at work: vision and LLM calls behind clean API routes, a real auth-gated database, image storage that doesn't break when DALL-E URLs expire, and a UI that doesn't feel like a CRUD app. KitchenMania is also genuinely useful: I run out of groceries less now, and "what can I make tonight" is a one-tap question instead of a fridge-staring contest.
MIT. See LICENSE.