Alot Labs
Menu
Work
Deployments Lab Live Writing
Firm
About Capabilities Services Method Pricing Careers The commitment Compare the alternatives Book the briefing
← All deployments
Case study · Deployment 07

Meai

A smart-kitchen platform where the AI is useful because it is constrained: food-recall matching that never says “safe,” dietary filters written in code rather than prompts, and vision that asks before it acts.

Safety invariants Deterministic guardrails Confidence-gated vision Regulatory data feeds
TypeSafety-critical platform StatusIn production — run at our own expense StackTypeScript · shared invariants package Runs inSelf-hosted today · your VPC on engagement
Why we show you a kitchen

Swap the nouns and this is your compliance problem: “never claim safe” is “never auto-approve,” the deterministic filter is your policy engine, the confidence gate is your human-review queue. Meai demonstrates that AI systems can be built where the dangerous simplification is structurally impossible.

The problem

Most AI products fail safely: a wrong answer wastes a minute. Meai lives where that is not true. It matches a household's food against government recall feeds, filters recipes for people with dietary restrictions, and logs food from photos — and in each, the dangerous failure is a plausible one: a reassuring “no recalls found,” a recipe that is almost vegetarian, an inventory that silently edited itself. The engineering that matters is the cage.

0
code paths that can call food “safe” — the claim is unrepresentable, not discouraged
100%
of inventory changes confirmed by a person — the AI proposes, the human disposes
2
regeneration attempts, maximum, before a recipe is discarded and the rejection logged
4
questions every code review must answer — the first: can any path claim an item is safe?
What it does
01
Inventory that fills itself — with permission

Photograph groceries and vision proposes what it saw. Below a confidence threshold it asks instead of assuming, and nothing enters or leaves the inventory without explicit user confirmation.

02
Recipes that respect restrictions structurally

The model generates from what the pantry holds; a deterministic, versioned server-side filter checks every recipe before it reaches the user. The prompt is an optimization; the code is the guarantee.

03
Recall matching that stays advisory

Government recall feeds sync on their own cadences and are fuzzy-matched against the pantry across brand, product text, and purchase window. Matches surface as possible matches for the user to review — the system is structurally incapable of declaring food safe.

Stack: TypeScript monorepo — typed API over a relational store, shared invariants package used by every app, provider-agnostic vision and generation interfaces, scheduled per-source recall sync.

Architecture
Household photos · pantry · questions Government recall feeds synced, each on its own cadence Vision logging photo → proposed items Recipe generation from what the pantry holds Recall matching brand · product text · purchase window Shared invariants package — the cage imported by every app — the forbidden states are unrepresentable, not discouraged A question, not a write below confidence, vision asks first A recipe code has checked deterministic filter · max 2 regens “Possible match” — never “safe” the user reviews; the system cannot clear 100% of inventory changes are confirmed by a person — including in response to a recall
The invariants — what makes this enterprise-relevant
The system may say “possible match.” It may never say “safe.”

The claim is unrepresentable in the UI, in field names, and in API responses alike. A recall candidate must clear a 0.40 brand-similarity gate, then a 0.70 composite score that weighs brand at 0.50, product text at 0.35, and purchase window at 0.15 — and even then it surfaces only as a possible match for the user to review. Absence of a match renders as “no matches in our data,” never as reassurance. The optional AI adjudicator can sort matches by plausibility but can never clear one.

A prompt is a request. A filter is a guarantee.

The dietary filter is an explicit, versioned list with token-boundary matching (so “collard” never trips on “lard”), an allowlist that wins first, and a hard cap of 2 regeneration attempts. After that, the recipe is discarded, the rejection is logged to improve the list, and the UI is told exactly why there are fewer results. The model never gets unlimited retries at the filter.

Confidence gates keep the human in the loop

Vision output below threshold becomes a question, not a write. Inventory changes only through explicit user action — including in response to a recall. Every review of this codebase asks the same four questions, starting with: can any code path claim an item is safe?

In production

A full working platform — inventory, vision logging, recipe generation, recall sync and matching — with the invariants enforced in a shared package every app imports. Built and operated by us.

What we would deploy for you

This discipline applied to your domain: the invariants workshop first — what must never happen — then a system where those constraints live in code and schema, not in a prompt and a hope.

Related deployments
Book the briefing Send the workflow