Tempul Health: A FlutterFlow App Built on an AI Data Pipeline
An Australian health app that scores everyday products and city tap water from 0 to 100. The app took weeks. The data behind every score took an AI pipeline.
An Australian health app that scores everyday products and city tap water from 0 to 100. The app took weeks. The data behind every score took an AI pipeline.
Tempul Health tells people what is actually in the water they drink and the products they use, and scores each one from 0 to 100. We built it for an Australian client: the app in FlutterFlow on Supabase, and the Python and AI-agent pipeline that researches every product and turns it into rows the app can score.
It is live on the App Store and at tempul.health. This is how it was built, and why most of the engineering went into the data rather than the screens.
A health and wellness app that scores everyday products and city tap water from 0 to 100. Search a product and its page shows what is in it: contaminants, anything above health guidelines, microplastics, PFAS, health risks, packaging and where it comes from. It covers six categories: bottled water, tap water, baby food, cosmetics, supplements and energy drinks.
Tap water is scored city by city. A personal health score adds up the products a user has saved, and a freemium model shows three key attributes for free, with the full report behind a subscription.
The whole product: the app, the backend, the payments and the data pipeline that feeds them.
The first version went from design to TestFlight in two weeks. That speed is the reason to use FlutterFlow over a native build here: it left the time for the data.
Because a score is only as good as the ingredient data under it. Every product needs its full ingredient list. Every ingredient needs a legal limit, a health guideline, flags for whether the FDA or the EU bans it, a risk level, and the sources for all of that.
The catalogue passed 2,000 products and 1,700 ingredients, joined by more than 10,000 product-to-ingredient links. Nobody keeps that current by hand, and a single wrong match quietly changes a score that a parent might use to pick baby food.
AI agents do the research, Python does the matching, and a person handles the exceptions.
It is the same shape as any process worth automating: the machine does the repetitive reading, and the judgement calls that matter still reach a person. It is also the kind of work our AI automation services are built around.
City by city, with every reading compared against the World Health Organization guideline. Tempul covers Australian cities including Sydney, Brisbane, Perth, Newcastle, the Sunshine Coast, the Central Coast, Bunbury and Geraldton. The readings come from lab reports, and some come directly from government sources. Each substance is set against the WHO guidelines for drinking-water quality, and anything above it is flagged.
The link to the source report stays with every row. When a number is questioned, and on a health app it will be, the answer is one tap away rather than a search through old spreadsheets.
Yes, in South Korea, with its own product catalogue. Korean products are kept separate from the Australian ones, because what is on the shelf, and which brands people trust, differs by market. Every product records which market it belongs to, and ingredient records carry Korean names and descriptions next to the English ones, so the same pipeline and the same scoring serve both.
Korean cities, such as Chuncheon and Daejeon, sit alongside the Australian ones in the tap-water data.
Because the data is relational and the screens needed to ship fast. Thousands of products linked to thousands of ingredients is a job for a real Postgres database, and Supabase provides one with authentication included. FlutterFlow built the screens quickly, which kept the budget pointed at the data.
If you are pricing something similar, our FlutterFlow cost breakdown covers what the app side typically runs to.
If your product is a score, a rating or a recommendation, budget more for the data than for the screens.