Read any food label in seconds, and know if it's worth buying.
OpenLabel is an offline-first app that reads a packaged food, by its barcode or straight off the ingredients label, and gives you a clear answer to one question: what is actually in this, and is it worth putting in the cart? It is built for India, works with no signal, keeps everything on your phone, and never leaves you at a black box. I had the idea, designed the brand and product, and built the app itself.
- Role
- Idea, design and build
- Scope
- Concept → UX → Brand → App
- Built with
- React Native, on-device OCR, Claude
- Platform
- Android beta, iOS next
- Industry
- Consumer, Health
- Status
- Public beta, 2026
OpenLabel is a real project I built solo. I designed the identity and the product, and wrote the app with Claude as my engineering partner. The scoring engine is plain, deterministic TypeScript, no machine learning anywhere near the number. It is in Android public beta now, installable as a direct APK, with iOS to follow.
Most people aren't careless about what they eat. They just have no way to know.
This started as a personal frustration, not a market study. I watch people across India pick a packet off the shelf and drop it in the cart without a second glance, with no idea what is inside, whether the additives are safe, or whether it is something other countries stopped allowing years ago. It is not carelessness. The label is right there in their hand, and it is effectively unreadable: microscopic type, cryptic E-numbers, and a nutrition table almost nobody is trained to read.
OpenLabel exists to close that gap. Not to lecture and not to scare, just to put a clear, honest answer in someone's hand in the two seconds they are deciding whether to buy. Knowledge first. What they do with it stays their call.
A clear answer in the two seconds you are holding the pack. That is the whole job.
The label is right there in your hand, and still unreadable.
Every scanner app I tried fell down in the exact moment that mattered, standing in a shop with a packet in hand. They lean on big online databases with thin coverage of Indian products, and they need a connection that basement supermarkets simply do not have. So you scan a local biscuit and get “not available,” or a score with no reason you can check. Meanwhile a colour or preservative that is freely used here may be banned or warning-labelled abroad, and there is no way to know that from the aisle.
- Labels you physically cannot read: tiny print, E-numbers, and a nutrition panel built for nobody.
- Apps made for the web, not the aisle, that go blank the moment the signal drops.
- Poor coverage of Indian products, so local packs come back as “not found.”
- A regulatory blind spot: no hint that an additive is restricted in five other countries.
One camera. Two ways in.
The product is deliberately one surface: the camera. You either scan the barcode, which is fast when the product is known, or you point it at the ingredients label and let the app read the text itself. The label path is the important one. It works on any product on the shelf, even one no database has ever heard of, and it works with the phone in aeroplane mode. A morphing reticle and a single switch move you between the two without ever leaving the screen.
Fast when the pack is known
- Point, and it resolves the product in a beat
- Backed by a bundled set of Indian products
- Falls through to the label when it draws a blank
- The quick path for your weekly basket
Works on anything, fully offline
- Reads the ingredients text on the device itself
- No database required, so nothing is ever a dead end
- The photo never leaves your phone
- The universal path, for any pack on earth

It never leaves you at “product not available.”
The quiet engineering decision that makes OpenLabel usable is the lookup chain behind a barcode. Instead of one database and a shrug, a scan flows through four stages, each one a wider net than the last. By the time it reaches the label scanner, the question is not whether it can answer, only how.
Bundled set
5,458 Indian products, shipped inside the app. No signal needed.
Local cache
Anything you or the app has looked up before, kept on the phone.
Open Food Facts
The live database of roughly 3 million products, when there's a connection.
Read the label
The universal fallback. On-device OCR reads any pack, even one no database has.
A barcode gets three shots before the app ever says “not found,” and the label scanner quietly catches everything else. That is the difference between a tool you trust in the aisle and one you stop opening.
A health score you can read line by line, never a black box.
A score people are meant to trust cannot be something they have to take on faith. So the scoring is deterministic and rule-based, never AI. It combines two independent things: the nutrition, scored with the EU-validated Nutri-Score model, and the additives of concern, each one deducting points that are capped so a single flag cannot tank an otherwise decent product. Every point up or down names the exact ingredient responsible, and the same pack always returns the same number.


Open any result and the score comes apart in your hands. It starts from the product's nutrition quality, then subtracts a named amount for each additive of concern, so you can see exactly what pulled it up or down.


A score people are meant to trust can't be a black box. Every point has a name.
A chutney isn't eaten by the 100 grams. The score had to know that.
The most interesting problem was one that first looked like a bug. Some clearly sensible foods were scoring badly, and the reason was that nutrition was being judged per 100 grams, flat. A pickle or chutney is brutal per 100 grams, but you eat about 15 of them. Scoring it as if you ate a full 100 was punishing food nobody eats that way.
The fix was to score nutrients per a realistic serving, using standardised reference amounts by food group, and to do it only for concentrated, small-serving savoury foods. Sweets, drinks and snacks are deliberately left untouched, so the adjustment can never quietly make junk look better. I validated it against a basket of real products before it shipped. The right answer was not a new screen. It was a more honest rule underneath.
Some of what's in your cart is banned abroad. OpenLabel names which, and where.
This is the part no other app gives you in the aisle. OpenLabel carries a curated registry of additives with their status in other regions, the US, EU, UK, Canada and Australia, recorded as banned, restricted, or warning-labelled, and always naming the specific country. A whitener that is banned in the EU or a colour that needs a warning label there is not something a shopper in India can otherwise know while holding the box.
Titanium dioxide (E171)
A whitener, common in sweets and chewing gum.
Azo dyes (E102, E110, E124)
Bright synthetic colours in drinks and snacks.
Potassium iodate
A flour treatment agent used in some breads.
BHA (E320)
An antioxidant preservative in oily foods.
Each status is checked against the actual regulator: the US FDA, the EU's EFSA and EUR-Lex, the UK FSA, Health Canada, and FSANZ. It flags that an additive is present and how it is treated elsewhere. It does not measure dosage, and it is shown as consumer guidance, not medical advice.
Tap any additive and you get the whole picture: what it does, what the science says, and its status region by region. Even a permitted one like sodium benzoate is laid out plainly, so nothing is taken on trust.

In a data-hungry category, it collects nothing.
Health apps are usually where your data goes to be sold. OpenLabel is built the other way. The label photo is read on the device and never uploaded. The only thing that ever leaves the phone is a barcode number, sent to look up a product. History lives in a local database, and there is no account, no login, no analytics, no ads and no trackers. Its Google Play data-safety declaration is, literally, “No data collected.”
On-device OCR
The camera reads the label on your phone. The photo is never sent anywhere.
One number out
A barcode is all that ever leaves the device, and only to name the product.
Nothing kept
History stays local, and there are no accounts, trackers, or ads to feed.
Next to the apps already on your phone.
OpenLabel is not trying to replace your diet tracker or the internet. It fills the one gap they all leave open: a trustworthy read on a real product, in the aisle, offline.
One person's idea, shipped end to end.
OpenLabel is the project where I own every layer: the idea, the brand, the interface, the scoring logic, and the app itself. I designed it and built it with Claude as my engineering partner, which is exactly the kind of end-to-end product work I want to be doing more of. The judgement calls that mattered most, keeping the score rule-based, scoring by a real serving, sending nothing off the phone, were product decisions long before they were code.
It is honest about where it is. Barcode and label are the strong paths; the OCR is still being tuned against messier real-world packaging, and not every Indian product is in the offline set yet, which is exactly what the live lookup and the label scanner are there to cover.
Download the Android betaProducts bundled offline
A curated set of Indian products that resolves with no signal at all.
Live fallback
Open Food Facts is there when you are online and the bundled set comes up short.
Ingredients decoded
A curated knowledge base of additives and base foods, with risk, aliases and INS numbers.
Data collected
No account, no analytics, no trackers. The Play data-safety answer is a flat zero.
Knowledge first. The choice stays yours.