02
Pace
A health app with no scores. Most of my effort went into checking that people actually felt it was gentle.
A working product, not a click-through. The listening step is a demo so it behaves the same on every device; the reply is written on the spot by a model, and what you save stays on your device. You can also type.
The 30-second version
- The problem
- Health apps score you and mark missed days in red. For people who are already worn out, looking after yourself becomes one more test, so they stop opening it.
- What we did
- I designed and built Pace: say one sentence, a small sun says one back. No scores, no nudges. I tested two versions of the failure screen, and wrote the AI's tone as a spec with a test suite.
- Result
- Live and ready to try. In an 8-person test, the version that kept the sun won. All hard tone rules passed across 32 test cases.
My part
- Design stance & trade-offs
- Design system v1.0
- Interface & flow design
- Controlled test on the failure copy (n=8)
- Tone spec, guardrails & evaluation set
- Front-end build & deploy (Claude Code)
Platforms
- Web (live product)
- iOS (design only)
Team
- Solo — design and build
Client & timeline
- AAPD bootcamp project
- 2026.06 – 09

Background
A health app that doesn't keep score
Pace was a project for the AAPD product design bootcamp. The brief and user scenario came from the course. I made the design calls, built the design system and interface, and wrote the code to ship it.
You say one sentence, a small sun says one back, and it goes into your days. No streaks, no completion rings, no red dots. Days with nothing in them stay blank.
Research
Four people under pressure, four different complaints
Their complaints had nothing in common, but they all pointed the same way: the apps they had only told them how badly they were doing.
- 1
Software engineer: told to relax while still running code in their head.
- 2
Advertising account manager: turned off the 11pm reminder because it nagged.
- 3
Freelance designer: the tracker felt like a log of a disaster scene.
- 4
Startup COO: awake at 3am thinking about revenue, didn't want more red numbers.
Competitors
Every other app counts the days you missed
When you don't show up, health apps mark the day and break your streak. Pace treats a blank day as just a day. That one choice shaped the rest: the timeline leaves blank days blank, and the weekly review is a paragraph, not a completion rate.
Structure
Three tabs. Recording isn't one of them.
Today, Days and Review. Recording is an action, not a place: listening, the reply and saving all happen on the same screen, so it never feels like homework you have to go and do.

Highlight #1
The failure screen: two versions, tested
Problem. A gentle app is easy when everything works. The real test is what it says when speech recognition fails.
What I did. I made two versions. A keeps the sun on screen: "I didn't quite catch that, that's on me", with two ways out, say it again or type instead. B is a standard system error: a red triangle, "check your network", and one retry button. Each person got a single link, so nobody knew they were comparing anything.
Result. A won, and everyone's reason was the sun still being there. People described B as "being told off".
- 8
- people tested
- 3
- separate links


Highlight #2
"Not this one": a feature a participant asked for
One participant misspoke halfway through and wanted a way to not keep that entry, without it counting as a deletion. It now sits under the save button. It's the only screen in the project that came from a user rather than from me.

Highlight #3
The empty state is the whole argument
Problem. A blank day is exactly what other health apps punish.
What I did. With nothing recorded, Today only says: "Nothing yet today. Say one thing, that's enough." No badge, no red dot, no nudge. The weekly review doesn't say "5 of 7 days". It says the blank days are part of the week too.

Highlight #4
A design system with no red in it
Moods are five named states, from Worn out to Energised, never turned into a score. There is no red in the palette: the strongest colour is the terracotta used for the main action, so an error can never be louder than an invitation. The four principles are written as rules you can settle an argument with.
- 5
- named mood states, no numbers
- 0
- red in the palette


Highlight #5
Writing the AI's tone as a spec
Problem. A model writes each reply on the spot, and a model's default habits (sympathy, three suggestions, see you tomorrow) break every one of Pace's principles.
What I did. I wrote the tone as a spec: one or two sentences, no numbers, no advice unless asked, never mention tomorrow. Every reply goes through a rule check before anyone sees it, and gets rewritten if it fails. Then I wrote 32 test cases to score it.
Result. The hard rules passed on the first run. The difficult part was empty replies like "so tired" that would fit under anyone's sentence. Example replies and a minimum length took the score from 47% to 56%, ending at 19 of 29.
The model is a small open model on Cloudflare: it doesn't train on what people say, and it replies in 1.3 seconds. A larger one wrote better but took 12.8.
- 32
- test cases
- 1.3s
- reply time (vs 12.8s)
Highlight #6
Designed and shipped solo
Figma for design, Claude Code for the code, Cloudflare to ship it. Building it showed things a static mockup couldn't. The saved card said "saved to your days" but still offered two buttons underneath. Now it has one: Got it.

Looking back
Three things I'd do differently
- 1
Eight people in three groups shows a consistent reason, not a percentage. Next time, a bigger sample.
- 2
The tone was scored by the same model that wrote it. Next time, a stronger judge plus human ratings.
- 3
Whether people open it again tomorrow is still unmeasured. That needs tracking over weeks.

