Weekly Meal Prep

Replace scattered texts and screenshots with one calm weekly plan both adults can trust on a phone at the store.

Builder · Personal · 2026

Next.js stack
Workers runtime
D1 storage

Context

A two-adult household should not rebuild dinner from group texts every Sunday. The job is simple and unforgiving: decide this week’s dinners and kid lunches, leave with a grocery list you can shop against, and still trust the plan mid-week when life gets loud.

What I built

Weekly Meal Prep — a private single-household planner at meals.wheresharvey.com.

  • / this week’s plan: lock meals, regenerate, grocery list, weekly sliders
  • /recipes curated catalog (add, edit, favorite, archive)
  • /import TikTok link + notes → review draft → queue next week
  • /shopping copyable grocery export + Instacart search links
  • /settings dinners per week, cook effort/novelty, servings
  • Shared household login when auth secrets are set

Household login for the private meal-prep app

This week's plan with locked dinners and regenerate

How it worked

Product rules from the brief: week first, one decision at a time, trust through clarity, phone-thumb native, capable not clever. No meal-kit marketing hero, no SaaS metric strip, no cream-and-terracotta food-app costume.

Architecture matches the constraint set. Repositories own persistence. Locally, atomic JSON under data/. In production, Cloudflare Workers + D1 via OpenNext, with the same repository API. Custom domain on the Worker. Do not deploy publicly without HOUSEHOLD_PASSWORD.

Outcome

Both adults can open the same plan mid-week without a renegotiation meeting. Shopping starts from a list the app already built. Recipe import from TikTok becomes a review step, not a doomscroll into dinner chaos.

What I’d do next

Keep the roadmap boring: stronger shopping handoff, tighter import review, and whatever reduces “what’s for dinner” friction without adding dashboard chrome.