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
rulesopen dataAIvegannot veganuncertain

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

  1. 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.

  2. Ingredient rules

    Curated lists with 114 animal-derived ingredients, 15 ambiguous ones and 27 vegan seals.

  3. 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.

  4. 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.

From scan to result
  • Data
  • Code
  • AI
  • Outcome
  1. Barcode or photo (Data)App camera
  2. Known data (Data)App database and Open Food Facts
  3. Ingredient rules (Code)Curated lists
  4. AI (AI)Only when rules can’t decide
  5. Check (Code)Format and allergens
  6. 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.