Skip to content
Dimitri Robiere PerrietD. R. PerrietCaen, FR — --:--:--EN · FR

FoodKeeper, a React Native app against food waste

○ Archived
Client
Projet personnel
Role
Full-stack and mobile developer
Duration
5 months
Year
2024
Stack
React Native · Expo · TypeScript · Node.js · Express · MySQL · Clerk · OpenAI API
FoodKeeper, a React Native app against food waste — illustration
Fig. 01 — FoodKeeper, a React Native app against food waste, illustration
(00) — In short

FoodKeeper is a React Native app against food waste: fridge and cupboard tracking, Open Food Facts barcode scanning, AI food recognition and expiry reminders.

(01)

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.

(02)

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.

(03)

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
← Previous project20 · Katapult, an application platform for an incubatorNext project22Custom WordPress extensions in PHP and site integration