Full-stack · FastAPI · React · Postgres · 2026
EasyPlate
A full-stack meal-planning platform with live grocery pricing and an AI assistant, guided by one human using AI coding agents.
Product owner & AI-guided delivery lead
- 1 human guide
- requirements, iteration, review, and release decisions
- 2 stores
- priced live (Kroger, Walmart)
- Security
- RS256 JWT auth · opt-in 2FA · data export
Sanitized implementation diagram
Diagram · implementation viewFrom meal plan to checkout decision
A simplified view of the implemented planning and pricing workflow.
Plan
Generate a household-ready multi-week meal plan.
Resolve
Turn recipes and pantry state into an exact grocery list.
Price
Fetch comparable live Kroger and Walmart options.
Decide
Use deterministic logic to choose the lowest checkout total.
Sanitized system diagram. Scope shown: implemented product behavior. Adoption and revenue are outside this artifact.
- My contribution
- Product requirements, acceptance criteria, review, and release
- Hard constraint
- Money decisions stay deterministic and testable
- What changed
- Planning, pricing, pantry, and nutrition became one workflow
EasyPlate answers the weekly question every household actually argues about: what do we eat, and what will it cost? It combines meal planning, live grocery pricing, pantry state, and nutrition in one product. I defined the product requirements and acceptance criteria, guided Claude and Codex through implementation iterations, reviewed their outputs and test results, and decided release readiness.
Outcomes
- Live multi-store grocery pricing with checkout strategies that route each item to the lowest total.
- Secure multi-user accounts: RS256 JWT auth, opt-in two-factor, and privacy and data-export controls.
- AI-generated production foundations reviewed against my requirements: schema migrations, an automated test suite gating every change, structured logging and metrics, and host-agnostic CI/CD.
Evidence & claim boundaries
- Claim boundary
- The evidence here is limited to implemented product scope and engineering controls; user-growth and revenue results are outside the evidence presented.
- Human and AI roles
- I guided Claude and Codex by defining requirements and acceptance criteria, directing iterations, reviewing results, and deciding what was ready to release.
Problem
Most meal-planning tools stop at the recipe. That is the easy part. The real friction is everything around the plan: turning it into an accurate shopping list, knowing what each item actually costs at the store you use, and keeping track of what is already in the pantry and how the week adds up nutritionally. Each is a small chore. Together they are why people give up on planning and order takeout.
Approach
I set one rule that shaped every prompt and review: build EasyPlate to production application standards. I guided the AI toward a clean separation between routing, business logic, and data access, then reviewed each iteration against explicit acceptance criteria so the code stayed modular as new features landed.
Live pricing followed the same rule. I directed the AI to place it behind a provider-agnostic seam, so each new store plugs in through the same interface, while AI features sit inside the core planning workflow as contextual assistants.
Delivered scope
AI-assisted meal-plan generation with a multi-week planner.
Grocery lists priced live against real stores, with multi-store checkout strategies that work out where to buy each item for the lowest total.
Pantry tracking and USDA-backed nutrition with per-ingredient coverage, so the numbers reflect what is really in the plan.
A Gemini-powered chatbot with voice notes, on top of secure accounts (RS256 JWT auth, opt-in two-factor, and privacy and data-export controls).
Key decisions & trade-offs
One integration seam centralizes store calls. Every grocery provider routes through a single adapter, which adds a layer of indirection up front. In return, adding a third store means writing one new adapter; existing planning code stays unchanged, and providers remain swappable and mockable.
Migrations own the schema. Alembic is the single source of truth for the database, and CI requires every schema change to include a matching migration. This adds process overhead and materially reduces the risk of the database drifting away from the code months later.
AI assists, deterministic code decides. Pricing and the checkout strategy use plain, testable deterministic logic. The assistant handles the fuzzy, conversational parts, so anything involving someone's money stays predictable and debuggable.
Resulting system
Async FastAPI over PostgreSQL, with a React 19 and TypeScript single-page front end, containerized with Docker and backed by background workers for the slow jobs so requests stay fast.
The AI-generated operational layer includes schema migrations, structured logging and metrics, rate limiting on sensitive endpoints, and host-agnostic CI/CD. I reviewed those outputs and their test results against the release criteria.
Technology FastAPI · PostgreSQL · React 19 · TypeScript · Google Gemini · Docker · Alembic
Scope Product direction · AI-guided full-stack delivery · Release review