Browse all guides

The grocery list

How the grocery typeahead works — including Recently added, the household-wide history that surfaces items you've typed before so you don't have to retype them every shop.

The Groceries tab holds your active shopping list — recipe ingredients aggregated by aisle, plus anything you've added by hand. Tap + at the top to open the add picker.

Adding items

Type into the search field. Three things can happen:

  • Dictionary match — we've heard of this ingredient. Tap it and it's added.
  • Recently added — your household has typed this before. See the next section.
  • Custom add — your text doesn't match anything we know; the Add "…" row at the top lets you save it verbatim, exactly as you typed it.

Each tap commits the item to the list immediately and shows a checkmark — keep tapping to add more, then close the sheet when you're done. There's no Apply button, no batching; the list is the source of truth.

Recently added

The grocery dictionary covers thousands of ingredients, but it doesn't know about *your* household — silverbeet from the local greengrocer, your kid's favourite cereal, that one specific brand of miso paste your aunt sent you. Recently added fixes that.

Whenever anyone in your household adds a custom item to the grocery list, it joins a per-household history. Next time someone starts typing, that history surfaces in a Recently added section above the dictionary results — ranked by recency first, frequency second. One tap to re-add it, spelled exactly the way it was last time.

  • Per-household, not per-device. A new phone joining the household inherits the full list automatically — same as the rest of the grocery state.
  • Survives "Clear list." Clearing the active grocery list doesn't wipe history. Items you've typed once stay discoverable.
  • Casing is preserved. If you typed *Silverbeet*, that's how it appears next time — even if someone else in the household later typed *silverbeet*, the most-recent casing wins.
  • No timeout. A two-year-old item is still there if you need it; it just naturally sinks below recently-used items.

Recently added matches by substring on the normalized name — typing mis finds miso paste even if the dictionary doesn't list it. Items that *do* match the dictionary are deduped to the dictionary row instead, so you don't see the same item twice.

Privacy

Recently added items can be sensitive — medications, allergens, anything else you'd type into a list. The list is per-household: it doesn't sync to other households, doesn't appear on share-link pages, and doesn't leave the household DB.

Related guides