Own product

Cabelo em Dia — Tracking for people treating hair loss with a doctor

An app for people treating hair loss with a doctor who want to see their progress over months: standardized photos, daily logging, reminders and a report to bring to the appointment. The app records and organizes, and never recommends a treatment or a dose.

YEAR
2026 — present
TYPE
Own product · PWA + website
ROLE
Founder · Engineering & Product
CABELO EM DIA: o site no computador e no celular
5 angles
of standardized photo, with silhouette and light meter
AES-256
on photos, with a per-person derived key
10 lessons
short, sourced, in 5 modules

Problem.

Treating hair loss takes months, and results show up slowly. Without records, all a person has to answer the doctor is memory, and it is hard to tell the effect of the treatment from the impression of the day. And online content on the subject mixes information with promises and with medication advice that only a doctor can give.

Solution.

A mobile app (PWA) with a public website alongside. The Today screen shows what has been done that day, and the check-in takes 10 seconds. If something shows up, the person logs the effect and gets a short guide on when to watch and when to see the doctor, with the source. If hair fell more, a step-by-step explains what is usually normal at each stage. Photos follow a fixed standard so they can be compared, and everything becomes a PDF report for the appointment, with the questions the person noted down. The website has a 6-question quiz that builds the plan, a guide and a month 0 to 12 timeline.

Result.

The website, the quiz and the app are live at cabelo.joaovitral.com, with email login and its own deploy. Launch is on 03/11/2026. Payment is not integrated yet: today the pricing page shows the prices and the button states the opening date. A recent product, with no usage numbers published here.

Screens.

Screenshots of the live site.

Cabelo em Dia home page on desktop, with the headline about treating hair loss and two phones showing the guided camera and the Today screen
Home page: the problem, the promise and the limit (it does not sell medication or suggest doses) right in the first screen.
Personal plan generated by the quiz, with the treatment stage and the plan for the next 4 weeks
The 6-question quiz ends in a 4-week plan, calculated in the browser, storing nothing if the person prefers.
The app Today screen, with the daily ring, treatment times and check-in
Today: the daily ring, each time slot marked as done or skipped, and the 10-second check-in.
Result of logging a mild effect, with guidance on when to watch and when to talk to the doctor
Logging an effect returns short guidance: what it usually is, what to do and when to see the doctor.
Result of the Hair fell more, now what step-by-step, with guidance cards
"Hair fell more, now what?": 4 questions and cards that say whether it looks like early shedding or is worth seeing the doctor.
Progress screen, with consistency over the last 28 days and perceived shedding by week
Progress: consistency over the last 28 days and perceived shedding week by week, with no promise of results.
A lesson about shedding inside the app, with a notice to talk to the doctor
Learn: short lessons with sources and always the notice that the doctor decides the treatment.
Doctor report screen, with the period, options for what to include and a print or save as PDF button
Doctor report: the person picks the period and what goes in (photos and intimate topics only if checked) and prints or saves as PDF.

The hard part.

Every project has a point where the obvious solution doesn't cut it. Here, it was these.

A health app that refuses to prescribe

The limit was written before the code. No screen, text, email or notification suggests, calculates or adjusts a dose, and there is no milligram selector: the treatment is registered by category and in free text, as the doctor prescribed it. There is also no promise of results, no diagnosis and no AI analysis of photos. An automated test scans the texts for forbidden words, and reminders swap the name a person typed for a generic label if it matches a medication name, because the notification shows on the lock screen.

Comparable photos, kept private

A progress photo is only useful if it is taken under the same conditions. The camera shows the angle's silhouette, the previous session's photo as an overlay to repeat the position, and a light meter. On the server, each photo is rewritten without metadata (location, camera data) and encrypted with AES-256-GCM, with a per-person key derived from a master key. Only the owner can access it, and the app neither edits the image nor judges the result: the doctor does.

Health guidance without diagnosis

When the person logs an effect, the app answers on three levels: watch, talk to the doctor soon, or seek care now, with an emergency screen for serious signs. The text says what it usually is, what to do and when to see the doctor, and each piece of guidance cites its source. The logic is pure and covered by tests, and what the person logs goes into the report for the appointment.

Health data under the person's control

The app only opens after health consent, and the person can export all their data or delete the account from Profile. Login is by email, with no password, and the server stores only the hash (HMAC) of the code, the link and the session, never the value itself. Since an app installed on the home screen cannot see the browser's storage, the onboarding step is also saved on the server, so the person resumes where they left off.

What I did.

  • Solo project: product, design, code and infrastructure
  • Full product specification in documents (legal rules, screens, data model, quiz, scientific basis and launch plan) before writing code
  • Today, treatments by category and free text (no dose field), check-in and the Progress hub
  • Effect logging with three-level triage (watch, doctor soon, now), an emergency screen and a source on every piece of guidance
  • "Hair fell more, now what?" and the treatment timeline inside the app
  • Guided photos with a silhouette, the previous photo as an overlay and a light meter, a gallery per angle, and side-by-side or slider comparison
  • Learn, with 10 lessons in modules 1 to 5, and the right lesson suggested on Today for the person's stage
  • A PDF report for the doctor, with the questions the person noted
  • Data export and account deletion (LGPD), with health consent before any use of the app
  • Push reminders (VAPID) for treatment and photos, a PWA with an install screen and an onboarding that resumes where it stopped
  • Passwordless email login, a public site with quiz, guide and timeline, and deploy on a VPS with Docker Compose behind a Cloudflare Tunnel

Stack.

Next.jsReactTypeScriptTailwind CSSSQLitesharpWeb PushDockerCloudflare Tunnel

Have a similar project?

Tell me the problem — I answer personally.

See it live.

Public pages of the product, open to anyone.

Sister product.

Same foundation and same rule, for another treatment.