Built to be trusted.
What’s Vegan? answers a question people act on. That means the engineering underneath has one job before all others — never give a fabricated or careless answer — and to be resilient and secure while it does it. Here's how it's built, and what an independent review verified.
The safety core
The most important property in a food app is that a verdict is never invented. It's enforced by the architecture, not by trusting a model.
- One deterministic authority. Every verdict comes from a pure, rule-based function over classified ingredients — re-derived on every path, so nothing upstream can assert a result.
- AI classifies, it never decides. The model's only job is labelling individual ingredients. Its suggestions land in a separate place the grader never reads, gated by an automatic "never upgrade toward vegan on uncertainty" rule and human review before they can ever affect a result.
- Untrusted input, handled as such. Label text read by the camera is treated as data, never as instructions, and parsing fails toward "let's look closer" rather than a confident wrong answer.
- Honest when unsure. "Couldn't read the label" is a real answer. The app never shows a made-up product to fill a gap.
How a scan works
Three independent surfaces — the iOS app, the edge backend, and the data layer — that talk only over one documented, versioned contract. A scan runs cheap, dedicated steps and caches everything it learns.
When a product has no readable label, a research step requires at least two independent, agreeing sources before it will state a verdict — otherwise it honestly asks for an ingredients photo.
Security, in layers
No single control is load-bearing — each layer assumes the one outside it can fail.
Genuine-app identity, enforced
The costly AI endpoints require a hardware-backed proof from Apple's App Attest that a request came from a real install of the app — not a copyable identifier. Each expensive request is individually signed and single-use, and the app transparently re-establishes trust and retries if it's ever challenged, so a real device is never wrongly turned away.
Layered rate limiting
Expensive scans and cheap result-reads are metered in separate budgets, so ordinary use can never exhaust a shopper's scan allowance, and the service stays available under load.
Unforgeable storage access
Uploaded-photo links are server-minted random identifiers with a strict format gate — there's no path that reaches private data and nothing to guess. Private responses are never publicly cached.
Injection-resistant data layer
Every database query is parameterized, and a schema rule guarantees one canonical record per product. A careless write degrades gracefully instead of erroring a live scan.
Admin that fails closed
Administrative access requires a secret held only in the platform's secure store, checked in constant time — a missing secret denies access rather than opening it.
No secrets at rest in source
The review found no credentials in the codebase; real secrets live in the platform's secret store and the device's secure enclave.
Resilient app, self-bounding infrastructure
On the phone
- Built with compiler-enforced strict concurrency, so whole classes of bugs are impossible, not just tested against.
- Barcodes recognized on-device; a local cache keeps results instant and never blanks on a flaky network.
- A slow, out-of-date response can never overwrite a newer scan on screen.
- Camera-denied and other edge states show honest prompts — never a fabricated product.
In the cloud
- Runs at the edge, globally, with every latency-critical lookup served by a purpose-built index.
- Gets cheaper with use: every resolved product and learned ingredient is cached for the next shopper.
- A daily housekeeping sweep bounds operational data so the system stays healthy over time — and never touches live review data.
Independently reviewed
The architecture, backend, infrastructure, and the entire app were reviewed end-to-end with an adversarial, prove-it-wrong method — every change independently checked, and the findings verified against the running system rather than just the code.
Where we are
The safety core, data integrity, and the security controls above are live and verified today. We hold ourselves to the same standard we ask of the products we grade: be honest, show your work, and never guess.