MELAIRE — a hair-care platform
A hair-care platform for iOS built around personalised profiles, curated ingredient data and outputs that explain themselves.
- Next.js
- Supabase
- Capacitor
- RevenueCat

Overview
A hair-care platform for iOS: a guided profile, curated ingredient data, product analysis and personalised outputs — built around the idea that the system should be honest about what it does and doesn't know.
Why I built it
People around me — me included — were constantly guessing at hair products: what actually suits my hair, what's really in this, whether it's worth the money. I wanted to make that easier, and to find out how much of a real product I could build myself using AI-assisted development.
Product experience
A guided quiz creates a personalised hair profile and care plan. A product scanner checks items against a curated ingredient database and returns a profile-aware result — an overall compatibility score, an ingredient breakdown (great / caution / avoid) and profile-specific notes — alongside routine tracking, a Hair Journey score and community features.
Data & scoring
Scoring is driven by the curated ingredient database rather than a black box. Where the data only supports a band, an estimate or a directional signal, that is what the product shows.
Handling uncertainty
The rule I kept coming back to: don't fake certainty. If a product isn't in the database, the system routes it to a “request it” flow instead of inventing an answer that would look better than an empty state.
How I build with AI
Prompt log — how I direct the build
I don't ask the model to “build me an app”. I write the spec first — the rules, what “good” looks like, and the failure conditions — then make the tool prove itself before I trust it. Here's the difference on MELAIRE's product scanner:
Before — vague
“Score how good a hair product is for the user.”
After — specified
“Score compatibility with the user's hair profile using only our curated ingredient database. Return an overall score, an ingredient breakdown (great / caution / avoid) and profile-aware notes — never a bare number. If the product isn't in the database, route it to ‘request it’ — don't guess. No false precision.”
The second prompt bakes in the rule I care about most: the tool should be honest about what it actually knows and never fake certainty. Spec first, safety limits explicit, output validated before it is trusted.
Technical stack
Built on Supabase, wrapped with Capacitor for iOS, with in-app subscription infrastructure via RevenueCat.