Case study · Development
Nutrition label software for small food producers. Recipes become Canadian and US label PDFs, with reports showing the ingredients, source data and calculations behind them.
A small food producer developing a packaged product needs to account for ingredient quantities, serving sizes, food database matches and label formatting. Each affects the result, and every recipe change requires recalculation.
We built Nutrifax to bring these steps into one recipe workflow, where producers can review the inputs behind a label.
Nutrifax combines a FastAPI backend with an Expo/React Native frontend. It matches ingredients against the Canadian Nutrient File and USDA Standard Reference data, calculates nutrition per serving, applies rounding rules, and generates bilingual Canadian or US Nutrition Facts PDFs. Saved recipes and Stripe subscriptions support ongoing use.
How it's built
Food matching, quantity conversion, calculation and rendering are separate steps. The calculation report combines their inputs and results so producers can review how a recipe became a label.
Health Canada's Canadian Nutrient File and the USDA Standard Reference use different data structures. We brought them into a shared workflow for ingredient search and calculation.
Downloadable reports show ingredient quantities, gram conversions, source references, nutrient calculations and the methodology used to produce the result.
ReportLab generates the label and calculation-report PDFs on the server, including bilingual Canadian and US label layouts.
Configurable text and vision models run through OpenRouter. The import pipeline parses ingredients, searches the local food databases, and asks the model to choose among returned records. Python handles quantity conversion and nutrition calculations.
Stripe Checkout and subscription webhooks connect billing to account access. Recipes stay with the account as producers edit their product lines.
Producers can return to recipes saved in their accounts, adjust ingredients and serving sizes, and generate updated labels.
Python / FastAPI · Expo / React Native · MySQL · Docker · Stripe · OpenRouter · ReportLab.
What this shows
We separate recipe interpretation from nutrition calculation. AI helps turn free-form ingredients into candidate food records. The backend uses those records and measured quantities for deterministic calculations and rounding.
A plausible ingredient match can still be wrong. Producers can check the source references and quantity conversions before using a label.
We design calculation logic, source references and reports together when we build data-backed applications.