Know what's in your food — before you buy it.
An offline-first mobile scanner for packaged food in India. Point it at a barcode or ingredient label and get a transparent, rule-based 0–10 verdict in seconds — entirely on-device. No account, no tracking, nothing leaves your phone.
Walk down any supermarket aisle in India and most people buy packaged food without a real way to judge what's inside. Nutrition panels are dense, additive codes are cryptic, and some ingredients still sold here are banned or restricted in the EU, US, UK, Canada, or Australia — with no hint of that on the pack.
OpenLabel is built to change that decision at the shelf. Scan a product, get a straight answer, decide with confidence. The goal isn't to tell anyone what to eat — it's to make what you're eating knowable.
📖 Read the full story and design process in the case study.
🌐 See it in action on the website · source: armaanux/site-openlabel
- Scan a barcode → instant lookup against an offline product catalogue, with a live Open Food Facts fallback when a product isn't bundled, and a graceful "scan the label instead" path when it's nowhere to be found.
- Scan an ingredient label → on-device OCR reads the ingredients panel directly, so it works for any product, catalogued or not.
- Get a 0–10 verdict → a transparent, Nutri-Score-style nutritional score you can actually read the reasoning behind — not a black box.
- Understand every additive → tap any ingredient for what it is, what it does, and its regulatory status in India and abroad.
- See what's flagged elsewhere → additives banned or restricted in other regions are surfaced with the specific countries named (e.g. "Banned in the EU").
| OpenLabel | |
|---|---|
| Scoring | Rule-based and never AI — a deterministic, EU-validated Nutri-Score algorithm, scaled to a realistic serving size so condiments aren't unfairly punished. Every point is explainable. |
| Privacy | Fully offline-first. No account, no analytics, no data collection. The camera never uploads a frame. |
| Regulatory lens | Cross-references additives against how they're regulated in the US, EU, UK, Canada & Australia — a concrete signal Indian labels don't provide. |
| Built for India | Designed around Indian packaged products, FSSAI additive listings, and real shopping behaviour. |
Scope note: OpenLabel reports additive presence and regulatory status. It does not detect pesticide residues or verify quantitative limits, and it is not medical advice.
- React Native 0.85 + Expo SDK 56 (new architecture) with Expo Router
- NativeWind v4 (Tailwind) + Reanimated for the UI
- On-device OCR via ML Kit text recognition — no server round-trip
- SQLite (expo-sqlite) for the bundled ingredient & product data
- TypeScript end to end
npm install
npm start # Expo dev server — open in a dev build or on device
npm run android # build & run on a connected Android device/emulator
npm run ios # build & run on iOS simulatorQuality gates:
npm run typecheck
npm run lintapp/ Expo Router routes (scanner, results, ingredient, history)
src/
features/ Screen-level features (scanner, results, ingredient, history)
domain/ Scoring, ingredients, products — the rule-based core
data/ Open Food Facts client, OCR pipeline, local catalogue
shared/ Reusable UI primitives
core/ Theme, providers, bootstrap
docs/ Privacy policy, Play Data Safety, store listing
Grab the latest Android build from the Releases page or directly:
OpenLabel collects no personal data. Scans, history, and preferences stay on the device. See the full privacy policy.
MIT — © Armaan Parvez