Inspiration

"I don't recognise myself." Women going through menopause and pregnancy say it often. Hormones change skin, hair and shape within months, and the routine, colours and clothes that worked last year stop feeling right. Most skin apps read skin as if it stays the same, score it like a test, and talk about it as something to be dealt with. Almost none are built for Indian women, their weddings, their rupee budgets, their gold-or-silver question, their family WhatsApp, or their language.

We wanted a companion that starts from "I don't recognise myself" and helps her get to "this is still me". We built it around two sample women: Meera, 52, from Pune, in menopause, and Ananya, 29, from Bengaluru, who is pregnant. Both are AI-generated.

What it does

From one selfie, Chapters explains in plain words what is changing, refreshes her look on her own photo, builds a routine and a cart, and follows her month by month. It runs on a phone or a desktop, in English or Hindi.

  • Here's what's changing. YouCam Skin Analysis reads seven areas, shown as soft maps with care levels in words ("Care for now", "Some care", "Steady"), never as a number. "Why is this happening?" gives a short answer with its health source.
  • Your colours. One Skin Tone reading, plus her own gold-or-silver answer, sets her palette for clothes, lips and blush, her jewellery metal and her makeup shades.
  • A routine that changes with her. Morning and evening steps, where every product says why it was matched. Products are ranked by fit, then rating, never by commission.
  • Try-on studio. Face Analyzer reads her face shape and marks the cuts that frame it. Hairstyle, Hair Color and Makeup run as one chain on her own photo, with smoothing lowered so her fine lines stay hers. The reveal opens with "This is still you." Earrings, necklaces and outfits follow, and every look lands in her lookbook.
  • Get me ready (Chapter Agent). One tap plans her routine, an occasion look, a cart inside her budget and her next check-in. The trail shows the YouCam API, units and reason for every step.
  • Get ready for… A whole look for a cousin's wedding or a baby shower: hair, makeup, earrings, a necklace and an outfit in her colours, with an optional scarf or bag as a styled scene.
  • Is it working? Monthly check-ins compare only what a product is meant to support, "since you started", never "because of", and say when a change is too small for a phone photo to show.
  • Pregnancy chapter. Ingredients that are worth discussing with her doctor are marked that way, and medical questions in "Ask" go to a doctor list she can print or share.
  • Ask my circle. She sends two or three numbered looks to the family WhatsApp and keeps the one her circle picks.
  • Made for her household. Helper mode lets a daughter or son set it up and hand over the phone; only her own consent counts. Hindi, "Listen" read-aloud, voice commands and larger text are one tap away.
  • For brands. A one-line widget adds "Does this suit me? Try it on" to any product page. The store learns only "in your colours" and "add to bag", never her photo.

Judges can try everything without a selfie. "See Meera's chapter" plays a one-minute guided tour on recorded YouCam results, with no live calls and a sample label on every result.

How we built it

  • Next.js 16 (App Router), React 19 and TypeScript, with zod validating every request, response and agent tool. Mobile-first at 390 px, with a separate desktop layout from the same design tokens.
  • Fourteen YouCam AI APIs, each with one job: Skin Analysis, Skin Tone, Face Analyzer, Hairstyle, Hair Color, Makeup VTO, Clothes, Earrings, Necklace, Scarf, Bag, and Hair Type, Frizziness and Length. Endpoints and unit costs come from the official YouCam API docs.
  • A server-only proxy guards every unit. The API key never reaches the browser; a post-build check fails the build if a secret lands in a client bundle. Six allow-listed operations go through /api/youcam/[op], and anything else returns 403. The proxy uploads, polls, returns the result and deletes the task on YouCam's side. Live runs are metered, the app drops to labelled sample mode below a unit floor, and an image-hash cache means the same photo is never charged twice. The cache key is

$$k = \mathrm{SHA256}(\text{operation} \,|\, \text{options} \,|\, \text{image bytes})$$

so a retry, a Back tap or a second look at the same step costs nothing.

  • The Chapter Agent uses Claude with tool use when a key is set, and deterministic rules otherwise. The planner can only call tools from a typed registry, the runner stops at 8 steps or a 120-unit budget, and invented product or look ids are rejected. Before each step the runner checks

$$n_{\text{steps}} < 8 \quad\text{and}\quad U_{\text{used}} + u_{\text{next}} \le U_{\text{budget}} = 120,$$

and stops if either fails. The planner never writes what she reads: every sentence is a template. Results stream to the screen over server-sent events. Sample mode replays recorded plans, and the trail header names the planner that made each one; every replay so far was planned by the rules, and Claude plans only live runs.

  • A language validator, enforced in code. Every template, answer and Hindi string passes a checker that blocks harsh beauty language and safety claims, and the tests run it on all of them.
  • On-device capture checks with MediaPipe (light, white balance, framing, head angle) before a check-in counts for "Is it working?".
  • Private by default. No accounts and no database. Photos are never stored on the server, and history stays in her browser only if she ticks "Keep my results".
  • Sample mode and tests. Recorded masks, renders, occasion looks and agent plans play back with no units spent. Recording scripts are dry runs unless passed --live. The Vitest suite runs 369 tests.

Challenges we ran into

  • Every unit counts. A live check-in and face refresh costs

$$\underbrace{16}{\text{Skin Analysis}} + \underbrace{20}{\text{Skin Tone}} + \underbrace{10}{\text{Face Analyzer}} + \underbrace{2 + 1 + 1}{\text{hair, colour, makeup}} = 50 \text{ units},$$

so we built metering, a unit floor, an image-hash cache and a per-step cache for the hairstyle → colour → makeup chain before building screens.

  • What the APIs needed was different from what we assumed. Skin Analysis needs a tight face crop, so the phone sends a cropped copy for skin and the wide photo for hair. The "Ash Gray" hair preset rendered mint-green on our test photo, so silver uses custom palettes.
  • Two photos, honestly. Hair, makeup and jewellery need a close-up and outfits need a full-length photo. Scarf and Bag generate their own outfit and background, so we show them as labelled "styled scenes" beside her look instead of pretending they are one image.
  • An agent we could trust. Letting a model plan a sequence of paid API calls needed hard limits: a typed tool registry, a step limit, a unit budget and templates for every sentence she sees.
  • Kind language in two languages. Writing everyday Hindi that stays warm, and keeping both languages free of words that make her feel judged, took a validator, not just good intentions.
  • Honest comparisons. Phone photos vary with light and angle, so "Is it working?" only compares after a capture gate, and says so when a change is too small to measure.

Accomplishments that we're proud of

  • The reveal line, "This is still you.", and an app built backwards from it.
  • Care levels in words over real YouCam masks; she never sees a score.
  • One Skin Tone reading that drives her palette, makeup, outfit badges, jewellery metal and occasion look.
  • An agent that shows its work: every step names its API, units and reason, inside hard limits.
  • Every flow works in sample mode, so anyone can try the whole product without a selfie and without spending a unit.
  • India-first details: a cousin's wedding, rupee budgets, gold or silver, Hindi with read-aloud and voice commands, WhatsApp, and helper mode for families.
  • Privacy that holds up for brands too: the widget gives a store useful signals without ever seeing her photo.
  • Research mode (?research=1) ready for real sessions, with bilingual consent and an export that holds no image data.

What we learned

  • Measure on day one. Our first real API calls changed how we capture photos and which presets we use.
  • Words matter as much as the model. The same skin reading feels very different as "Care for now" than as a number.
  • Constraints make an agent more useful, not less. Typed tools, budgets and templates made it something we could put in front of her.
  • Honesty is a design feature. Labelling samples, styled scenes and "since you started" builds more trust than a polished result that overclaims.
  • Designing for the household (the daughter who sets it up, the circle on WhatsApp) matters as much as designing for the person holding the phone.

What's next for Chapters

  • Postpartum. The landing page already previews "after the baby". It stays behind a flag until a dermatologist and an obstetrician review it and a clinician confirms a maternal mental-health support link.
  • Real products. Replace the example catalogue with hand-checked products, with each rating, count and date typed by a person from the retailer page.
  • Native Hindi review, then more Indian languages.
  • User research sessions with women in menopause and pregnancy, using the built-in research mode.
  • Hair texture and frizz in sample mode, once we record side-angle photos of our sample women (the sample hair check shows length only for now).
  • Brand pilots with the try-on widget on real product pages.

Built With

  • anthropic-api
  • claude
  • eslint
  • localstorage
  • mediapipe
  • next.js
  • node.js
  • perfect-corp
  • react
  • server-sent-events
  • sharp
  • tailwind-css
  • tsx
  • typescript
  • vitest
  • web-share-api
  • web-speech-api
  • whatsapp
  • youcam-api
  • zod
Share this project:

Updates

Submission history