Product design case study

Gentle View

A stress-relief app that asks one question about how you're doing and answers with one thing to try, plus a plain reason why.

Where this stands. The build came first. It's the Deliver half of the double diamond; Discover and Define still need doing. Everything below about what people need is a hypothesis until it's tested.

Problem

Wellness apps ask for decisions at the moment people are worst at making them.

Which of 200 meditations, how long, which teacher.

Idea

One question, one suggestion, and the reason.

The library is still there for people who know what they want.

Built so far

A working web app, on phones and laptops.

Six sections, five original meditations, history, and a token system mirrored in Figma. The iPhone app is coming soon.

Gentle View on a laptop, in Night: a framed photo of closed eyes with the greeting, the question 'How are you doing right now?' and four state buttons centred in it, and an Explore carousel below.
The web app on a laptop. On a phone, the same Home keeps the check-in low, near the thumb.

Open the web app ↗

01 · The problem

The library becomes one more source of load.

When people are stressed, drained or overwhelmed, wellness apps ask them to make exactly the decisions they're worst at in that moment. Choosing is a cost, and it's highest when capacity is lowest.

Hypothesis

Asking one question about someone's current state, and answering with one suggestion and a plain reason, gets them into a regulating practice faster, and more often, than browsing a library.

How might we

How might we help people settle their nervous system when they're too overwhelmed to choose how?

02 · Principles

Six principles, and what each one costs.

Each principle comes with a trade-off I accepted on purpose.

One question, one suggestionDecision load is highest exactly when capacity is lowest.Trade-off: less browsing for people who know what they want. The sections are still there.
Say whyUnderstanding the mechanism builds trust and repeat use.Trade-off: more text on the suggestion card.
Nothing suddenSudden sound, motion or colour can raise arousal in the very people the app is trying to calm.Trade-off: less "delight" motion.
Finite by designEndless feeds are engineered for compulsion, the opposite of regulation.Trade-off: lower engagement metrics, by choice.
Never gate calmA sign-up form in a hard moment is a barrier.Trade-off: fewer account sign-ups.
Help one tap awaySome people who open a calm app are in crisis.Trade-off: screen space in the header.

03 · The solution

One question. One thing to try. One reason.

Home asks how you're doing right now. Pick one state or several, and the app answers with a single suggestion and says why it fits. Try the toggles: they're the real component.

How are you doing right now?

Meditate3 min

Longer breath out

When you’re keyed up, a breath out that’s longer than the breath in is the quickest way to bring the pace down.

Everyday words on the outside, the Mood Meter underneath. The answer is one card, never a list.

Four states: the four corners of the Mood Meter

Stressed

High energy, unpleasant: tense, on edge, too much going on. Suggests "Longer breath out".

Drained

Low energy, unpleasant: tired, flat, running on empty. Suggests "Come back up".

Calm

Low energy, pleasant: okay, settled, at ease. Suggests "Stay with it".

Upbeat

High energy, pleasant: good, hopeful, excited. Suggests a few minutes of Move.

Why these four. The first set (Wired, Heavy, Scattered, Steady) described the body or the mind, not a feeling, and Heavy could mean sad or tired. Marc Brackett's Mood Meter, from the Yale Center for Emotional Intelligence, places a feeling on two axes: energy, and how pleasant it is. Each button is one corner of it, named in the word people actually say. The icon is the meter itself: the filled square shows where that state sits.

A closer word is one optional tap away. With one state picked, "Closer to one of these?" offers the precise words, for example Anxious, Overwhelmed, Fed up or Angry under Stressed. Each has its own pick. People who'd only ever say "stressed" never have to go further. Anger gets slow breathing, not a run: in a 2024 review of 154 studies, calming the body reduced anger, and most high-energy exercise didn't. "Not sure" skips the words entirely and goes to a body-first practice.

Mixed states get one pick too. All 15 combinations of the four states have their own suggestion and reason, chosen by hand and covered by a test. "Stressed and drained" isn't an average of two answers; it's a slower breath out that doesn't ask for energy you don't have.

04 · Key decisions

Each decision removes a choice, a wall or a surprise.

The loop closes

Decision
After a practice, the app asks "How do you feel now?"
Reason
"Worse" offers a different kind of practice and support options, never just "try again".

Guest mode first

Decision
Everything works without an account.
Reason
A stressed person shouldn’t meet a sign-up wall. Accounts only carry history across devices, and guest history merges in on sign-up.

Sections in one quiet row

Decision
One sideways row of photo cards under the check-in. It replaced a two-column grid.
Reason
The photo and the question come first; the sections wait below, with History beneath. The trade-off: a phone shows two and a bit cards, and the cut-off third says the row scrolls. Laptops get a carousel with previous and next buttons.

History gets its own tab

Decision
Three places: Home, History, Settings.
Reason
Finding something again is the differentiator. History logs every open and shows each item once per day. A phone gets a tab bar; a laptop gets the same three links in a top bar.

The suggestion stays compact

Decision
A small photo tile, not a photo banner.
Reason
With a large photo, the sections fell below the fold. The card keeps its parts: tag, duration, title, reason, one Begin button. Its photo is the section's second one, so it never repeats the card just below it.

No bold, no capitals

Decision
Two weights only, 400 and 500. Titles in sentence case.
Reason
Hierarchy comes from size, the serif and sans pairing, and space. It reads calmer and more confident.

05 · The AI question

Deliberately no chatbot in v1.

Open-ended conversation adds load when someone is dysregulated, and a model responding to someone in crisis carries clinical and safety risk that a prototype shouldn't take on.

Personalisation comes from simple counts of the person's own answers: "what's helped" and "helped you last time you felt stressed". It's transparent, private and easy to explain.

Where AI could earn its place later. On-device ranking of the suggestion from the person's own outcomes, once there's enough history to beat the simple counts. The bar: it must be explainable in one sentence.

06 · Content you can trust

Curation is a rules engine, and the rules are published.

Watch and Listen pull from outside sources, refreshed weekly. The six rules on the app's Guidelines page are the same six checks in the code, so the app can say exactly why an item was left out.

  1. Publishers are allowlisted and confirmed live. If a handle doesn't resolve, it's skipped and logged.
  2. Captions mean real captions. Uploaded tracks, not automatic ones.
  3. At most two items per publisher. One prolific channel can't fill a section.
  4. A failed refresh changes nothing. A section keeps its last good set, so it's never empty.
  5. Photos come with a description. Every image has meaningful alt text and credits its photographer.

Meditations are original. Five scripts written for this app in plain language, with no therapy vocabulary, in short and long versions. Captions come from the same script, so they match the audio exactly.

07 · How it's built

One token source feeds the code and Figma.

I built Gentle View with Claude Code, so the design system has two users: me, and the AI writing the code. The checks below apply to both of us. The token JSON is the single source. A build script generates the CSS, a Figma Variables payload and a typed name list from it, so color.text.primary is the same name in code and in Figma. The Figma screens are captures of the real app, so Figma can't drift from what ships.

348design tokens, in three layers
15hand-picked suggestions, one per combination of states
6sections, in one row on Home
5original meditation scripts, short and long

Checked, not hoped for. Linting and a unit test reject raw values in components. Contrast for every text and surface pair is tested in both modes against WCAG AA, and so is the primary button's shape.

08 · Design system

A quiet system: one ink, one blue for action, one warm accent.

Gentle View's interface comes from three layers of tokens. The palette is a blue-black ink, one baby blue that marks the action, and one warm accent; the type is two faces at two weights. Nothing in it is loud, because nothing in the app should be sudden.

348tokens: 102 raw values, 122 roles, 124 component decisions
2typefaces, EB Garamond and Inter, in seven sizes
2weights, 400 and 500; the build rejects anything heavier
0raw values in components; lint and a test block them

Colour: raw value, role, decision

Raw valuegv.sky.300#89CFF0
Rolecolor.action.bgThe main action
Decisionbutton.primary-bgThe primary button
In the app

Each layer uses only the one beneath it. The build fails if a component points at a raw value.

Ink · blue-black. 950 is the Night background and the logo's own ground
Sky · 300 is the action colour, baby blue
Dawn · the one warm accent
Roles · Day on the left, Night on the right
color/bg#F4F7F8 · #0B1620
color/surface#FFFFFF · #14222D
color/surface-sunken#E7ECEF · #14222D
color/border/default#D0D8DD · #2B404D
color/text/primary#0B1620 · #FFFFFF
color/text/secondary#2B404D · #D0D8DD
color/text/tertiary#566B78 · #A9B6BE
color/action/bg#89CFF0 · #89CFF0
color/action/border#1E80B3 · #89CFF0
color/accent/subtle#F8DCCB · #EDB394
color/accent/strong#C97A55 · #EDB394
color/text/danger#9E3556 · #F2A9BB
color/text/success#2C6A4D · #A9D8BF
Illustration palette
tide/300#93CBCB
tide/600#3F8C98
tide/800#1E4F63
sky/200#C2E8F9
sky/400#5DBAE6
sun/300#F7D9A0
moss/400#7FA88B
moss/700#3B5E4F

Night first. The app opens dark: people reach for it in the evening and in low moments, and a dark ground lowers glare. Baby blue is kept for the one thing to do, so on a Night screen the action is the brightest thing there. Day is one tap away in Settings. Every colour role carries both values; component tokens don't need modes because they point at roles.

Type: two faces, two weights

text/displayStay with it38 / 1.12
text/titleLonger breath out30 / 1.12
text/headingHow are you doing right now?24 / 1.3
text/subheadingPicture somewhere quieter20 / 1.3
text/bodyA breath out that’s longer than the breath in is the quickest way to bring the pace down.17 / 1.5
text/smallLet the pressure come down a notch15 / 1.5
text/labelMEDITATE · 3 MIN13 / 1.3

No bold, no all-caps titles. EB Garamond sets everything from display to subheading; Inter does the reading. Capitals are kept only for small labels, with open tracking.

Shape, space, motion and touch

Radius
sm · 8md · 12lg · 20xl · 28pill

Buttons and toggles are pills. Cards step from 12 to 28px; the suggestion card takes the largest.

Spacing
248121620243240486480

Named by job. A 20px gutter, 40px between sections, 80px at the end of a page.

Motion
fast · 120msbase · 200msslow · 320ms

Nothing sudden. Three durations and two easing curves. Reduced motion makes every transition instant.

Touch targets
44 · touch48 · control64 · large

Nothing smaller than 44px. The check-in toggles and player controls take 64px.

The mark

Used exactly as supplied, at every size. The Night background is the logo's own ground, so the mark never sits in a visible box.

Components: each one is a set of decisions

Button

Job
Primary is the one way in, in baby blue with a blue-black label (10.7:1). Quiet sits beside it; text is an underlined link-style action. On Day a thin sky 600 edge keeps the pale pill visible on white.
Rule
48px tall, pill-shaped, medium weight. Pressing fades it; nothing jumps.

State toggle

Job
The check-in. Four states, and more than one can be on at once.
Rule
A 64px glass disc on the photo; selected turns solid. The icon is the Mood Meter, with this state's corner filled. The label is the only capitals in the app.

Meditate3 min

Longer breath out

When you’re keyed up, a breath out that’s longer than the breath in is the quickest way to bring the pace down.

Suggestion card

Job
One thing to try, and why. Tag, duration, title, a plain reason, one Begin button.
Rule
Always one card, never a list. The reason is never cut.

Three of fifteen. The other component token groups cover the icon button, section card, row, tab bar, header, tabs, input, player, hero, skeleton, doodle canvas and focus ring.

09 · What research needs to answer

Not tested yet. Here's what would change my mind.

No participant has used this yet. These are the questions the design depends on, and the plan for answering them.

  1. Do people recognise themselves in the four states? Are any missing, such as numb or lonely?
  2. Does one suggestion feel supportive or restrictive? When do people want more choice?
  3. Is "How do you feel now?" welcome, or does it feel like being graded?
  4. Which content do people reach for in which state?
  5. Does the gallery's ending feel calming or abrupt?

Test plan

Moderated sessions with five to seven participants, aged 20 to 60, on four tasks.

Settle

"You've just come out of a stressful meeting. Use the app to settle." Time to start a practice, and the path taken.

Sleep

"Find something to help you fall asleep tonight."

Save and find

"Save something you'd use again, then find it later."

Get help

"Imagine you're having a really hard time. Where would you look for help?" Time to reach Support.

Measures. Time to first practice, task success, self-reported calm before and after on a 1 to 5 scale (used only in testing), and reactions to the check-in and the reflection.

Coming soon

Gentle View for iPhone.

Two iPhone screens of Gentle View: the check-in question with four states, and a suggestion to try a longer breath out.

The same check-in, one tap from your Home Screen.

Until then, it installs from Safari. Open gentleview.ca, tap Share, then Add to Home Screen. It opens full screen, and Home, Meditate, Doodle, History and Settings work offline.

10 · What's next

Do the half I skipped.