Household Grocery List
Status: Live.
Your muse
A shared grocery list for one household. Anyone with the link can add an item and tick it as bought. Items must be saved on the server, so they are still there after a reload and in a different browser. Keep it to one list. Made-up test data only.
Done. Milestone 1 is done and verified.
Checks ran
Done. Goal complete. Fresh
npm run verifyon the current state exits 0: all 11 tests pass, caps checks pass, 6 of 6 requirements (R1–R6) pass, and the manifest is valid.musemuse.jsonis filled from the brief, [BUILD_NOTES.md](/vercel/app/BU…Checks ran, try 2
Checks passed, try 3

The plan: Household Grocery List
One shared list for the whole household.
- Open the product link
- See the one household grocery list with to buy and bought sections
- Type an item name and quantity in the add field and submit
- See the new item appear at the top of the to buy section
See the full plan
Who it's for
One household sharing groceries through a link
How it works
- Open the product link.
- See the one household grocery list with to buy and bought sections.
- Type an item name and quantity in the add field and submit.
- See the new item appear at the top of the to buy section.
- Tick the checkbox when an item is bought.
- See it move to the bought section and stay there after reload.
- Remove an item or clear bought items when no longer needed.
Screens
- Grocery list. Shows the one shared list, the add field, to buy and bought sections, and remove controls.
What goes in
- Text: Grocery item name with optional quantity, for example Bananas x6. Under 200 characters.
What comes out
- Text: The one shared list showing to buy and bought items with tick boxes.
Models
Model Used for Why Muse Wonder Tidy added item names Keeps entries consistent by trimming and formatting short grocery text without extra typing. Limits
- Anyone with the link can add, tick, edit or remove any item.
- No sign in, so the product cannot tell who added what.
- List shows saved server data on load. New changes need a refresh if open in two browsers at once.
- Test data only. Do not enter real personal details.
From your inspo
The person gave text only asking for a shared household grocery list with link access that persists across reloads.
Takes
- One shared list for a household
- Add an item and tick it as bought
Cost per run: about $0.004 (est.). One Wonder call to tidy one item name uses about 300 input tokens ($0.0012) plus about 100 output tokens including reasoning ($0.002). Data saves are free. Total about $0.0032, rounded to $0.004 per run.
What you asked for 9 of 9 checked and working
- R1: Show one shared grocery list made for one household. Works Screenshot shows Your shared list with To buy items for one household.
- R2: Let anyone with the link add an item with a name and optional quantity. It is saved on the server. Works Screenshots show new items like Oat milk, 1L and Action Milk added at top.
- R3: Let anyone with the link tick an item as bought and untick it. The bought state is saved. Works Screenshots show items moved to Bought with checked boxes.
- R4: Save all items on the server so they are still there after a reload and in a different browser. Works Second browser screenshot shows same items as first browser after changes.
- R5: Keep the product to one single list with no extra lists or household switching. Works Screenshots show only one shared list with no list switcher.
- R6: Seed and test with made up grocery data only. Works Screenshots use only made up names like Made up bananas and Made up oats.
- R7: Let anyone remove an item or clear bought items. Changes persist after reload. Works Screenshots show trash icons and Clear bought with items removed.
- R8: Show an empty state with made up examples before any items exist. Works Screenshot shows empty message with examples Oat milk, Bananas, or Eggs.
- R9: Show a clear error message if adding or ticking fails and let the person retry. Works Screenshots show Keep it under 200 characters and item no longer on list errors with Try again.
Recorded demo Done. Milestone 3 is done.
npm run verifyexits 0: 14 tests pass, caps checks pass, and 9 of 9 requirements (R1–R9) pass with a valid manifest.It's live.