Oncology companion
A personalised resilience companion for people living with cancer, designed for the time between appointments.

Contents · 7 chapters
The brief was still moving
The client brought an AI-generated dashboard and an MVP document. They pointed in different directions: the dashboard used streaks, progress, scores and strengths ratings; the MVP said the product should not be gamified.
I treated the MVP as the stronger constraint, so those elements stayed out of the product. Missing a few days should not feel like failure.
The early font also felt wrong, so I pushed back and moved the interface to Satoshi, which is calmer and easier to read.
fig. 01 — Client reference. Useful as a reference, not a product direction.
- Not in the MVP
- Missed days should not feel like failure
- Support, not performance
- ROLE
- Product & UX lead
- SCOPE
- Product direction · onboarding · role-based experiences · health AI UX · safety states · prototype
- STATUS
- Functional prototype
- TIMELINE
- July–August 2026
Client work under NDA. Names shown in the screens are demo data.
The people and the system
The product had four roles: patient, caregiver, coach and clinician.
These were working assumptions based on the MVP, seeded data and review notes, not research findings.
Personas and information architecture helped define what each role needed to do, what they could see and where the system needed to hand off.
This was not one app with permissions added later. The roles shaped the structure from the beginning.





Personalise first, or email first?
Onboarding took longest, because the team needed to decide whether to personalise first or ask for an email address first.
I built both orders in the prototype so the team could walk them side by side: a conversation before the account, or the account and the promises first, with the personal questions moved inside the app.

Flows, personalisation and safety
I mapped the patient flows, including their exits.
A check-in could continue in the product, move to the care team or route to crisis support.
After writing in the journal, the patient decides who gets a summary: the page stays private, or they pick the sections and who receives them.
Behind the interface, the belief system updates after each interaction and uses clinician-created content to shape later responses.
I designed the visible check-in, recommendation and handoff states. The belief engine, classifiers and clinical operations were outside my scope.




Privacy and shared information
Journal pages and check-in words stay private.
Caregivers, coaches and clinicians see different amounts of information, depending on role and permission.
The patient decides what can be shared before someone is invited.
This became a minimum-disclosure approach: show each person what they need without turning private experience into a shared dashboard.

From Figma to React
I moved into Claude Code because of the deadline, but the layouts became repetitive while the flow was still changing.
I returned to Figma to settle the decisions, then rebuilt the direction in React.
The prototype was shared through GitHub with the full-stack developers, AI engineer, CTO and product manager.
It holds seven connected support flows, 21 resilience beliefs and three safety and escalation tiers.
The product is in beta. There are no health-outcome or clinical-impact results to claim yet.

The product, feature by feature
These are the screens in the prototype today, on the app’s own night-tree art, phone and desktop.
It opens with three promises and an optional minute of quiet, so the first thing asked of a person isn’t a form.
The journal takes whatever you say, as it is. When an entry ends it is read back gently, sometimes with a short poem, never with advice. You can ask it what you wrote.
Asking the companion gets a calm answer, and sometimes a short video made for that moment.
Who sees what is decided per person, one switch at a time. The journal is never one of the switches, and everything the companion remembers can be taken off.

Three promises
Before anything else: not therapy, private by default, and it acts on danger.

A minute of quiet
Breathe, on desktop and phone.

How’s today landing?
Say it, type it, or pick the closest word.

Only yours
Titles only on the list. Nothing is shared.

Say anything
Speak an entry; it goes in as it is.

A wrap, not advice
The read-back after an entry, and a haiku.

Ask your own journal
It finds the entry, in your words.

Ask anything, at any hour
A calm answer to the question that feels silly to ask a doctor.

Answers that lead somewhere
A six-minute video made for that moment.

One thing, a few minutes
Audio, video and practices for the day you’re having.

Your people, your rules
Everyone joins by code and sees only what you choose.

You decide what they see
Per-person switches; the journal stays off.

See what it remembers
Everything it knows about you, each with a way to take it off.
Goloka
Building the digital commerce platform for a heritage fragrance brand: a live Shopify store, and the custom, dealer and multi-brand platform after it.



