Pantry Bud cover
MediumSide ProjectRoleSolo Builder

Pantry Bud

2025 · Live

A mobile-first pantry app that solves the actual problem people have with cooking apps: every recipe site is somebody else's idea of dinner. Pantry Bud knows what you have, knows what you saved on TikTok, and matches the two. Receipts go in by scan, recipes come in by paste, and waste reduction is the headline number.

Marketing page feature grid: Smart Pantry Tracking with expiration alerts; Multi-Source Recipe Import from TikTok, Instagram, websites; Intelligent Shopping Lists; Advanced Receipt Scanning; Recipe Sharing and Family Sync; Waste Reduction Analytics.
The feature surface. Each box is one of the six problems people actually hit when they try to cook from what they have.
Architecture diagram: a React Native mobile app and marketing site both call a NestJS GraphQL gateway, which reads Postgres via Prisma and routes to Google Vision for receipt OCR, Gemini for recipe matching and meal planning, a TikTok and Instagram importer, and an expiry and waste analytics module.
Mobile and web both go through one NestJS GraphQL gateway. The AI services live behind that gateway, not in front of the client.

Overview

Two stacked frustrations. Recipe apps treat ingredients as if you start each week with a perfectly stocked kitchen; most of us start each week with two-thirds of a fridge of half-used things. And recipe discovery has fully migrated to video. The recipes I actually want to cook are saved in a TikTok folder I never open. Pantry Bud closes that loop. Pantry state goes in by receipt scan or manual edit, recipes come in by URL paste from any video, and the matcher tells you what's one decision away from dinner.

Approach

React Native app and a marketing site at pantrybud.com, both calling a single NestJS GraphQL gateway. GraphQL was the cheapest way to have mobile, web, and a future automation surface read the same shape. Postgres through Prisma, a recipe corpus of about nine thousand entries seeded from public sources, Google Vision for receipt OCR, Gemini for the recipe-to-pantry match. AI services live behind the gateway so I can swap models without shipping a new app store build. Auth is Google OAuth; the install funnel didn't deserve a password.

Outcome

Live and shipping weekly. The numbers I care about: pantry-to-cook conversion (does an item actually get used before it expires) and TikTok-import retention (do people come back to cook the thing they saved). Both are tracking in directions I would have bet against at the start. The number I'm still chasing is the cold start. Someone with an empty pantry needs the app to be useful inside the first week, and that flow still has rough edges.

Reflections

The moat here isn't the model. It's the importer. Anyone can match ingredients to recipes given both lists; almost nobody has put real engineering into the video-to-ingredient pipeline. GraphQL was right for cross-client coherence and wrong for the marketing site, which spent a month paying a tax it didn't need. Next time: thin REST for marketing, GraphQL gateway for everything else.