-
-
Home: five steps from skin scan to a confident buying decision.
-
YouCam Skin Analysis: 12 skin concerns explained in plain words, including what each result does not mean.
-
Your profile: medicines, allergies, pregnancy and the products you already use. Stored only in your browser.
-
Label reader: an AI text reader copies the ingredient list from a photo, and you can correct it.
-
Counter check: fixed rules name the exact ingredient and reason behind each verdict. Not medical advice.
-
YouCam Makeup Virtual Try-On: see the shade on your own photo before you buy.
-
Shopping coach: compares up to four products and proposes a basket. Nothing is saved until you confirm.
-
Progress: a second scan after 4 to 6 weeks shows honestly whether anything changed.
-
Transparent rules: every check the app makes is listed and explained.
Inspiration
I worked in community pharmacies for twenty years. The question I heard most at the counter was simple: "Is this product right for me?" People bought creams that clashed with their acne medicine, contained an ingredient they were allergic to, or doubled up on the same active they already used. Counter Check puts that counter conversation in your pocket, right before you buy.
This is a major upgrade of my earlier project, Mirror Session:
| Mirror Session (before) | Counter Check (now) | |
|---|---|---|
| Goal | Show skin scores | Decide whether to buy a product |
| Skin scan | Scores only | 12 concerns explained in plain words, including what a result does not mean |
| Products | None | Reads the real ingredient list from a photo |
| Safety | None | Fixed rules for medicines, allergies, pregnancy, sensitive skin, clashes with what you already use |
| Try-on | None | YouCam Makeup Virtual Try-On on your own photo |
| Shopping | None | Compares up to 4 products and proposes a basket; nothing is saved until you confirm |
| Progress | None | A second scan after 4–6 weeks shows honestly whether anything changed |
What it does
- Skin scan: the YouCam Skin Analysis API reads 12 skin concerns. Each one is explained in plain words.
- Your profile: medicines, allergies, pregnancy or breastfeeding, and the products you already use. It stays in your browser.
- Label reader: photograph a product's ingredient list. An AI text reader only copies the words, and you can correct them.
- Counter check: fixed, transparent rules compare the ingredients with your profile and your scan, and give a verdict: Good match, Check first, or Better to skip. Each reason names the exact ingredient and why. It always ends with "Ask your pharmacist or doctor."
- Try-on: for coloured products, the YouCam Makeup Virtual Try-On API shows the shade on your own photo.
- Shopping coach: compares up to four products and sorts them into now, later, check first and leave out, with one new active at a time.
- Progress: a second scan compares results, with a 10-point threshold so small noise is not sold as improvement.
It is not medical advice and does not diagnose anything.
How we built it
- Frontend and server: TanStack Start (React + Vite) with server functions, so API keys never reach the browser.
- YouCam APIs: Skin Analysis (HD, 12 concerns) and Makeup Virtual Try-On, with timeouts, retries and clear error messages.
- Label reading: Gemini transcribes the ingredient list only. It never sees faces and never gives advice.
- Rules engine: a hand-written knowledge base of ingredient groups, medicine interactions, allergens and clashes, based on my pharmacy experience. No AI decides the verdict.
- Hosting: Google Cloud Run, with keys in Secret Manager and a dedicated service account.
- Fair use: a usage counter in Cloud Storage that survives restarts, with per-visitor and global caps, so judges can always test it.
- I built it with Claude Code as my AI coding assistant.
Challenges we ran into
- One HD skin scan costs 20 API units, and my sample button was calling the API live every time. I replaced it with a saved real result and built a persistent counter so the total spend can never exceed a safe limit.
- Keeping the medical side honest: the AI only reads text, and every verdict comes from rules I can explain line by line.
- Making the try-on work well on a realistic face, and enlarging small photos to the 1080 px the scan needs.
Accomplishments that we're proud of
- A verdict you can trust because you can see why: the exact ingredient, the exact reason.
- Clashes are checked against what you really use, not against a suggested routine.
- An honest progress page that says "No clear change" when nothing changed.
- A live demo judges can try in two minutes, with a sample face, a sample label and a sample profile.
What we learned
- Where AI helps (reading messy labels) and where fixed rules are safer (anything that touches medicines and allergies).
- How to protect a limited API budget in a public demo.
- That good health tools explain what a result does not mean, not only what it does.
What's next for Counter Check
- More medicines and ingredient groups, reviewed with pharmacists and dermatologists.
- Barcode lookup for faster product checks.
- More languages, starting with Romanian.
- A pilot with a community pharmacy, to use it together with real counter advice.
Built With
- claude-code
- docker
- gemini
- google-cloud
- google-cloud-run
- node.js
- react
- secret-manager
- tanstack-start
- typescript
- vite
- youcam-makeup-vto-api
- youcam-skin-analysis-api
Log in or sign up for Devpost to join the conversation.