Inspiration
Food labels are written for local shoppers, but allergies travel across borders.
When we travel, we often need to make food decisions from labels written in languages we do not understand. A simple translation is not enough: the user needs to know whether a selected allergen appears directly in the ingredients, only in a “may contain” warning, or whether the scan is too incomplete to trust.
During Build Week, I traveled to Warsaw and tested this problem using a real Polish product and a simulated profile for a traveler with a severe tree-nut allergy.
What it does
ZYRA Guardian is a personalized allergen decision layer inside ZYRA, an existing multilingual food-analysis platform.
The user selects allergens to watch for. After scanning a product, Guardian compares the structured ingredient result with the personal profile and produces one of four outcomes:
- DANGER — a selected allergen was found directly in the ingredients
- MAY CONTAIN — the label includes a trace warning
- NO PROFILE MATCH — no selected allergen was detected, without claiming the product is safe
- SCAN INCOMPLETE — the ingredient list was not captured reliably enough
Guardian preserves the original evidence from the package. In the Warsaw test, it connected the Polish phrase “orzechy laskowe 13%” to hazelnuts and the selected tree-nut profile.
The experience follows a simple principle:
Decision first. Evidence second. Analysis third.
What I built during Build Week
ZYRA existed before Build Week as a working multilingual food scanner. During Build Week, I created the new Guardian vertical slice:
- a persistent personal allergy profile
- personalized matching against existing structured allergen results
- separate handling of direct ingredients and “may contain” warnings
- fail-closed behavior for incomplete OCR
- four clear Guardian decision states
- visible source evidence from the original foreign-language label
- mobile-first Guardian interface
- Polish-language validation with a real product bought in Warsaw
- regression tests protecting the existing scanner and allergen contracts
How I built it
ZYRA uses a Next.js and TypeScript frontend with a FastAPI and Python backend. Real package images pass through OCR, ingredient extraction, multilingual normalization and structured allergen detection.
Codex was used to audit the existing architecture, identify a safe integration point, implement the Guardian profile and deterministic decision layer, create tests, inspect regressions and harden the mobile interface.
GPT-5.6 is used meaningfully in ZYRA’s multilingual normalization workflow to help transform noisy ingredient data into clearer structured information.
The final allergen decision remains deterministic and traceable. GPT-5.6 does not independently invent, remove or downgrade an allergen warning.
Challenges
Real packaging is difficult: text may be small, curved, reflective, multilingual and mixed with marketing copy or nutrition tables.
The most important challenge was avoiding false confidence. Guardian must distinguish between:
- an allergen directly present in the ingredients
- a manufacturer’s trace warning
- no detected match
- insufficient evidence
For that reason, ZYRA Guardian never displays “SAFE” or “safe to eat.”
Accomplishments
- Built and tested Guardian during a real trip to Warsaw
- Detected a tree-nut match from a real Polish ingredient label
- Preserved the exact Polish source evidence
- Added personalization without rewriting the stable OCR pipeline
- Kept direct ingredients separate from trace warnings
- Created a working production-style feature rather than a staged translation demo
What I learned
AI is most useful in high-trust workflows when it improves understanding without hiding the evidence.
For food-allergy decisions, the system should show what was found, where it was found, how it maps to the user’s profile and what action to take next. It should never manufacture certainty.
What’s next
- expand Guardian to more European languages
- add more detailed reusable allergy profiles
- improve visual localization of evidence inside package images
- add scan history and travel profiles
- continue hardening OCR for curved and reflective packaging
Built With
- api
- codex
- computer
- fastapi
- gpt-5.6
- javascript
- multilingual
- natural-language-processing
- next.js
- ocr
- openai
- python
- react
- rest
- sqlite
- tesseract
- typescript
- vision
Log in or sign up for Devpost to join the conversation.