AvoCook is a mobile recipe app I'm building for personal use and to learn how to run a complete React Native project end to end.
The idea is simple: keep your recipes in one place, use them offline, and sync with Nextcloud Cookbook if you already have a server.
App Store ·
Android APK ·
- create and edit recipes locally;
- organise recipes by category;
- add photos;
- scan recipes from photos or generate recipes from pictures of dishes using AI (requires API key);
- import a recipe from a URL when the site exposes
schema.org/Recipedata; - receive shared URLs from other apps (like web browsers) to quickly import recipes;
- adjust quantities based on the number of servings;
- copy ingredients to the clipboard;
- start cooking timers;
- export a recipe as PDF or print it;
- back up / restore recipes to a JSON file;
- sync with Nextcloud Cookbook, if the user wants to;
- sync with the iOS Reminders app to leverage Apple's sharing features.
Local mode requires no account. Data stays on the device.
The project uses Expo, React Native and TypeScript.
npm install
npm run startThen open the app with Expo Go or a development build.
Useful commands:
npm run typecheck
npm test
npm run lint
npm run import:check -- <recipe-url>To test synchronisation:
- Install the Cookbook app on a Nextcloud instance.
- Create an app password in the security settings.
- Enter the server URL, username, and that password in AvoCook.
The app rejects remote servers over HTTP. HTTP is accepted for localhost
during development.
APKs are published in the GitHub releases. The main file to install is
avocook.apk.
src/screens: application screens;src/components: reusable components;src/features/recipes: local storage, sync, and recipe logic;src/features/nextcloud: HTTP client for Cookbook;src/features/import: recipe import from web pages;src/modules/avocook-timer-notifications: small native module for timer notifications.
If you enjoy AvoCook and want to help me fund the costs, you can make a donation:
This project is licenced under the GPLv3 licence.

