A shared shopping list app for Nextcloud. Create multiple lists, categorize items by shop area, and collaborate with your household in real-time.
Shopping List is developed by Otherworld Dev. These are the official links — accept no substitutes:
- Website — https://shoppinglist.otherworld.dev/
- Android app — the official companion app on Google Play (coming soon to F-Droid)
- Multiple lists — organize by store, meal plan, or occasion; pin the ones you use most to the top of the sidebar
- Shop area grouping — items grouped by aisle/department (Produce, Dairy, Bakery, etc.) with color-coded headers; click a header to collapse that area, and each list remembers which areas you folded away. Or sort A to Z, within each area or as one list
- Inline editing — click any item to edit name or quantity in place
- Item photos — optionally attach a photo to an item and see a thumbnail in the list; off by default, switch it on in the app's settings
- Ingredient parsing — paste a recipe ingredient list and items are parsed automatically (e.g. "2 cups flour" splits into quantity and name)
- Area auto-detection — new items are automatically assigned to a shop area based on configurable keyword mappings
- Duplicate merging — adding an item that already exists merges the quantities instead of creating duplicates
- Sharing — share lists with other Nextcloud users or groups with read or write permissions
- Public share links — share a list via URL without requiring a Nextcloud account, with configurable permissions, optional password protection, and expiry dates
- Drag-and-drop reordering — reorder items within and across shop area groups
- Smart area learning — when you manually assign an item to an area, the app remembers for next time
- Singular/plural matching — "radish" and "radishes" are recognised as the same item
- Auto-pluralization — item names pluralize automatically when quantity goes above 1
- Offline mode — data persists locally so the app works without network; changes queue and sync automatically when connectivity returns
- Real-time sync — changes from other users appear via Nextcloud's notify_push or polling fallback
- Check off items — tick items as you shop; checked items collapse into a separate section, sorted by area, A to Z, or most recent first
- Bulk actions — restore all checked items or delete them in one click
- Nextcloud 30 or later
- PHP 8.1 or later
Search for Shopping List in your Nextcloud app store and click Install.
- Clone this repository and copy the app into your Nextcloud
apps/directory:git clone https://github.com/otherworld-dev/Shopping-List.git cp -r Shopping-List/shopping_list /path/to/nextcloud/apps/
- Install JavaScript dependencies and build:
cd /path/to/nextcloud/apps/shopping_list npm ci npm run build - Enable the app:
php occ app:enable shopping_list
- Node.js 20+
- npm 10+
- A running Nextcloud development instance
cd shopping_list
make dev # install deps + watch mode
make build # production build
make lint # run ESLint + Stylelint
make test # run PHPUnit tests
make appstore # build release tarballOr without Make:
cd shopping_list
npm ci
npm run dev # watch mode
npm run build # production buildshopping_list/ The Nextcloud app
appinfo/ App metadata and routes
lib/ PHP backend (controllers, services, mappers, migrations)
src/ Vue 3 + TypeScript frontend
components/ Vue components
composables/ API client, push notifications
stores/ Pinia state management
types/ TypeScript interfaces
templates/ Server-side entry point
screenshots/ App store screenshots
Translations are managed on Crowdin — no coding required. You can translate the UI, the grocery keywords that drive automatic shop-area sorting, and measurement units, all in the browser.
The Android app's text is translated in the same project. Crowdin works on a copy of it kept in android/, and the Android repo copies the translations back before each release.
See TRANSLATING.md for a short, friendly walkthrough.
AGPL-3.0-or-later

