Build Log · June 20, 2026
ForgeHome Event Prep
Courtney can now see big things coming, plan food for them, and have ingredients in her cart before the event week.
- ForgeHome
- Meals
- Calendar
- UX
- day lookahead in /week
- 30
- new API routes
- 5
- new DB columns
- 4
- new components
- 2
day lookahead in /week
new API routes
new DB columns
new components
Timeline
Start
Scoped the feature
Courtney feedback: future events + pretzel salad + groceries before the event
30m
Schema + week page
30-day lookahead, isRecurring filter, hiddenFromLookahead, dishLabel columns pushed
60m
LookaheadCard built
Plan for this event panel, hide button, confirmation summary, save-as-recipe
90m
Grocery list updated
Event items grouped by event then by dish, neededByDate visible
120m
Recurring fix
Google recurringEventId wired into sync; backfill endpoint ran to fix existing rows
What shipped
30-day Coming Up section inside /week — non-recurring, non-hidden events only
LookaheadCard component — Plan for this event button, food prep panel, hide from Coming Up
Ingredient generation from dish name — checks saved recipes (fuzzy match), falls back to Claude
Confirmation summary after ingredient add — count, needed-by date (editable), save-as-recipe, view groceries link
Multiple dishes per event — each tracked by dishLabel, no limit
POST /api/events/recipe-grocery — generates and saves grocery items tagged to the event
POST /api/events/save-recipe — saves generated ingredients as a reusable household recipe
PATCH /api/events/recipe-grocery/need-by — updates neededByDate for all items on an event
Grocery list event section — groups by event + dish, shows event date and need-by date
Google Calendar sync now reads recurringEventId and writes isRecurring to routeItems
Debug backfill endpoint to fix existing rows — one-time run, can be deleted
“This is a very strong product direction. It makes ForgeHome less like a calendar and more like a home operations assistant.”