Skip to content

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 view

From meal plan to checkout decision

A simplified view of the implemented planning and pricing workflow.

  1. Plan

    Generate a household-ready multi-week meal plan.

  2. Resolve

    Turn recipes and pantry state into an exact grocery list.

  3. Price

    Fetch comparable live Kroger and Walmart options.

  4. 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