FoodKeeper, a React Native app against food waste
○ Archived
FoodKeeper is a React Native app against food waste: fridge and cupboard tracking, Open Food Facts barcode scanning, AI food recognition and expiry reminders.
Context
FoodKeeper is a mobile app against food waste, a personal project started at the end of 2024. The goal: throw away less by knowing what you have at home and what is about to expire.
The app stores each product with its expiry date, quantity and nutrition facts, then sends a reminder before it's too late. A first JavaScript version was followed by a second one, rewritten in TypeScript in spring 2025 with its own backend.
Challenge
Entering every item by hand quickly puts people off. Adding food had to be almost instant, for a packaged product as much as for a piece of fruit with no barcode.
The second version added sync across devices, with conflicts to resolve, and access to image recognition that couldn't expose any API key inside the app.
Approach
I built the app with Expo: barcode scanning linked to Open Food Facts (Nutri-Score, NOVA, allergens), photo import, an inventory filterable by expiry date and reminder notifications. For products without a barcode, I tried several vision services before settling on GPT-4o, which recognises the food and reads the expiry date from the photo.
The Node.js and Express backend, on MySQL, handles authentication with Clerk and merge-based sync with history and conflict detection. It also acts as the gateway to image analysis, reserved for signed-in users.
(04) — Results
Key figures- 37
- commits
- 5
- months of development
- 2
- app versions
- iOS · Android
- platforms
