App · Applied AI · 2026
VeganScan
Scan a product and find out whether it’s vegan.
- Status
- In development
- Context
- My own product
- My role
- Idea, design and full development: app, backend, database and AI.
- Stack
- Expo
- React Native
- TypeScript
- Zod
- Node.js
- Express
- Supabase
- PostgreSQL
- Open Food Facts API
- Gemini
- Groq
- OpenRouter
Overview
VeganScan is my own product, built for people who want a quick, explained answer in front of the supermarket shelf without relying only on certification seals.
Problem
Ingredient lists are long and full of ambiguous items, such as natural flavors and glycerin. A wrong “vegan” is worse than no answer, so the app has to know when it isn’t sure.
Approach
I defined the order of sources before writing code: first what is cheapest and most reliable — the app’s own database, open data and ingredient lists — and the AI only at the end, when the rules can’t decide.
How it works
Product lookup
The barcode is looked up in the app’s database and then in Open Food Facts, with a cache for the next scans.
Ingredient rules
Curated lists with 114 animal-derived ingredients, 15 ambiguous ones and 27 vegan seals.
AI as plan B
When the rules aren’t enough, the backend sends the text or photo to an LLM. If one provider fails, another takes over.
Checked answers
The AI’s answer must follow a defined format (validated with Zod) and is cross-checked against the product’s allergens before it’s shown.
- Data
- Code
- AI
- Outcome
- Barcode or photo (Data)App camera
- Known data (Data)App database and Open Food Facts
- Ingredient rules (Code)Curated lists
- AI (AI)Only when rules can’t decide
- Check (Code)Format and allergens
- Result (Outcome)Vegan, not vegan or uncertain
The AI is the last resort, not the first call.
Key decisions
Rules before AI
Most products can be classified with data and lists. The AI is slower and less certain, so it comes last.
No made-up answers
If the AI isn’t available, the app shows a real error. A fake result would be worse than none.
Swappable providers
The model used at first was shut down by its provider in 2026. Since every provider sits behind the same function, switching was simple.
Result
In development. Lookup, rules, AI with checks, sign-in and the community features are already built, with tests for the app and the backend.
Links
Product in development: the source code is private.