TRANSPARENT BY DESIGN
Your ingredients. A checked method.
AI recipe creation is optional. It starts with foods you confirmed, not unreviewed photo guesses.
What the checks do
You select up to 12 known food identities, total batch quantities, portions, equipment and a time budget. The model proposes a structured cooking method. The server and browser independently reject unselected food IDs, missing selected ingredients, unsupported operations, conflicting ingredient exclusions and methods outside those settings. Recipe steps are rendered from the accepted operations, not copied from unrestricted AI prose.
What the checks cannot prove
Code cannot certify taste, actual cooking duration, food quality, edibility, allergy safety or medical suitability. AI-assisted recipes are drafts, not independently kitchen-tested recipes. A time estimate never replaces a doneness check. Unknown foods, dry beans requiring advance preparation and unsupported combinations may need a dedicated recipe instead.
Food safety
Prepare raw proteins separately, follow product directions and use a food thermometer. The fixed temperature reminders follow FoodSafety.gov safe minimum internal temperatures. Confirm safe storage separately; the app cannot inspect freshness or cross-contact.
Privacy and provider use
One explicit recipe request sends selected canonical food names and amounts, exclusions and cooking settings to Cloudflare Workers AI. It does not send the photo, eater names or private kitchen notes. Provider policies apply. AI responses are not saved to your kitchen unless you review and save them. The application uses temporary in-tab result reuse, not a shared recipe history.
If an AI answer fails a code check, the app sends the validator’s message back once for a correction and tries a backup model if needed (@cf/google/gemma-4-26b-a4b-it first, then @cf/meta/llama-4-scout-17b-16e-instruct). A plan is shown only if it passes every check; nothing unchecked is ever displayed. Before any request, the app checks in code whether the foods can be cooked with your settings (for example eggs, rice and chicken need the hob and cooking water) and offers a one-tap fix, because no AI could succeed otherwise. The AI is also given a plan the app has already verified. If the AI cannot produce a plan that passes, or is unavailable, the app builds the method from its own verified rules, applies the same checks, and labels the result as rule-built. These extra attempts can use more of your Workers AI allocation. Cancelling stops accepting the result locally; an already-submitted provider request may still finish and be billed. Local recipes need no AI request.
What if the foods are not enough for a full meal?
The recipe always uses every food you selected and never adds anything silently. A food-group check (code, not AI) tells you when a selection lacks vegetables, protein or a whole grain or starch, and suggests foods you could add: foods you already have first, and only foods that fit your allergens, exclusions, diet style, equipment and water setting. Adding one is your choice, and the recipe is then created again with it. This is not a nutrient analysis or medical advice.
For the site owner
AI recipe creation turns on automatically when photo recognition is on (PHOTO_RECOGNITION_ENABLED=true). Set RECIPE_AI_ENABLED=false to switch it off, or RECIPE_AI_ENABLED=true to enable it without photo recognition. Retain the AI Workers AI binding and the existing Turnstile site and secret keys, then make a new deployment. Recipe models: CF_RECIPE_MODELS (comma list), CF_RECIPE_MODEL (tried first), or the defaults Gemma 4 then Llama 4 Scout; CF_RECIPE_TIMEOUT_MS and CF_RECIPE_DEADLINE_MS tune the time limits. The status endpoint is /api/recipes/status; configured does not mean model-tested. Preview hostnames need their own permitted widget hostname and bindings.
There is server-side single-use Turnstile verification and best-effort burst throttling. This is not a global spending cap. Set provider/account spending controls and monitor usage before enabling public AI creation.
Sources
Cloudflare structured output and its limitations · Turnstile server validation. Technical references checked 9 October 2026; no clinical reviewer or independent recipe testing is claimed.