Hi @Logarex π
I've been contributing a few PRs to AvoCook (#17, #18, #37) and would love to take on a larger feature area. I'd like to propose a set of improvements to the shopping list and wanted to check in first β both to get your thoughts and to make sure this aligns with your vision for the app before I start building.
Current state
The app already ships a solid shopping list foundation (src/features/shopping/, ShoppingListScreen, recipe integration). Everything runs against a single list. These proposals extend that foundation.
Proposed work packages
WP1 β Multiple named lists with a default (foundation)
Refactor the store from a flat item array to listId β { name, isDefault, items }. Add a list manager UI (create, rename, delete, set default). Migrate existing data on first launch. Everything below builds on this.
WP2 β List selection when adding from a recipe
When tapping "Add ingredients" in RecipeDetailScreen and more than one list exists, show a picker. Single-list behaviour is unchanged β no extra tap.
Depends on: WP1 Β· Effort: Low
WP3 β Checked-item UX: collapse completed items (independent)
Checked items move to the bottom automatically. A collapsible "Done (n)" section lets users expand it to uncheck a mistakenly ticked item.
Depends on: nothing Β· Effort: Low
WP4 β Supermarket category grouping (independent)
A local JSON mapping of ~200 common grocery items to supermarket sections (Produce, Dairy, Meat, Bakery, Frozen, etc.). Items group under section headers; unmatched items go to "Other". Users can manually reassign a category.
Depends on: nothing Β· Effort: Medium
WP5 β Autocomplete with suggestions
Inline suggestions while typing, drawn from the WP4 catalogue. Fuzzy/prefix matching. Selecting a suggestion pre-assigns its category.
Depends on: WP4 Β· Effort: Medium
WP6 β Move items between lists
Long-press or swipe on an item opens a "Move to β¦" context menu.
Depends on: WP1 Β· Effort: Low
WP7 β Per-list learned suggestions
Each list tracks item frequency ({ listId: { itemName: count } } in AsyncStorage). Autocomplete surfaces frequently-used items for the current list first.
Depends on: WP5 Β· Effort: Medium
WP8 β Optional real-time sync via Supabase (opt-in)
Users can enter a Supabase URL and anon key in Settings to enable real-time list sharing with others. Without a URL, the app stays fully local β Supabase is additive, not a dependency. Row-level security keeps lists private by default.
Depends on: WP1 Β· Effort: High
Suggested order
WP1 (foundation)
βββ WP2 (list picker in recipe view)
βββ WP6 (move between lists)
βββ WP8 (optional Supabase sync)
WP3 (checked-item UX β independent)
WP4 (category mapping β independent)
βββ WP5 (autocomplete)
βββ WP7 (learned suggestions)
Questions for you
- Does this direction fit the vision you have for AvoCook, or does any part of it overshoot the scope?
- Are there work packages you'd prefer to skip or defer?
- Any architectural concerns I should be aware of before starting?
- Would you prefer individual PRs per work package, or larger grouped PRs?
Happy to adjust the scope based on your feedback. I'd start with WP1 and WP3 only if you'd like to keep things incremental.
Hi @Logarex π
I've been contributing a few PRs to AvoCook (#17, #18, #37) and would love to take on a larger feature area. I'd like to propose a set of improvements to the shopping list and wanted to check in first β both to get your thoughts and to make sure this aligns with your vision for the app before I start building.
Current state
The app already ships a solid shopping list foundation (
src/features/shopping/,ShoppingListScreen, recipe integration). Everything runs against a single list. These proposals extend that foundation.Proposed work packages
WP1 β Multiple named lists with a default (foundation)
Refactor the store from a flat item array to
listId β { name, isDefault, items }. Add a list manager UI (create, rename, delete, set default). Migrate existing data on first launch. Everything below builds on this.WP2 β List selection when adding from a recipe
When tapping "Add ingredients" in
RecipeDetailScreenand more than one list exists, show a picker. Single-list behaviour is unchanged β no extra tap.Depends on: WP1 Β· Effort: Low
WP3 β Checked-item UX: collapse completed items (independent)
Checked items move to the bottom automatically. A collapsible "Done (n)" section lets users expand it to uncheck a mistakenly ticked item.
Depends on: nothing Β· Effort: Low
WP4 β Supermarket category grouping (independent)
A local JSON mapping of ~200 common grocery items to supermarket sections (Produce, Dairy, Meat, Bakery, Frozen, etc.). Items group under section headers; unmatched items go to "Other". Users can manually reassign a category.
Depends on: nothing Β· Effort: Medium
WP5 β Autocomplete with suggestions
Inline suggestions while typing, drawn from the WP4 catalogue. Fuzzy/prefix matching. Selecting a suggestion pre-assigns its category.
Depends on: WP4 Β· Effort: Medium
WP6 β Move items between lists
Long-press or swipe on an item opens a "Move to β¦" context menu.
Depends on: WP1 Β· Effort: Low
WP7 β Per-list learned suggestions
Each list tracks item frequency (
{ listId: { itemName: count } }in AsyncStorage). Autocomplete surfaces frequently-used items for the current list first.Depends on: WP5 Β· Effort: Medium
WP8 β Optional real-time sync via Supabase (opt-in)
Users can enter a Supabase URL and anon key in Settings to enable real-time list sharing with others. Without a URL, the app stays fully local β Supabase is additive, not a dependency. Row-level security keeps lists private by default.
Depends on: WP1 Β· Effort: High
Suggested order
Questions for you
Happy to adjust the scope based on your feedback. I'd start with WP1 and WP3 only if you'd like to keep things incremental.