JoeOkami
← All work

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
Three Pace screens on a warm background: the empty state with a voice button, the sun's reply to a recorded sentence, and the searchable timeline of past entries.

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. 1

    Software engineer: told to relax while still running code in their head.

  2. 2

    Advertising account manager: turned off the 11pm reminder because it nagged.

  3. 3

    Freelance designer: the tracker felt like a log of a disaster scene.

  4. 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.

Pace's three tabs side by side: Today, Days and Review.

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
The same failure screen in two versions side by side.
Four versions of the prototype: the host build with a demo switcher, and three participant builds without it.
Each participant got one link. The demo switcher is removed from the page entirely, not just hidden.

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.

Five Pace screens in sequence: empty state, listening, the sun's reply with save and not-this-one buttons, the saved card, and Today with entries.

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.

Today with no entries next to the weekly review written as sentences.

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
The Pace design system board: colour, mood spectrum, typography, components, states and four design principles.
The By mood view: five coloured mood states with names and no numbers.

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.

The saved card with a single Got it button.

Looking back

Three things I'd do differently

  1. 1

    Eight people in three groups shows a consistent reason, not a percentage. Next time, a bigger sample.

  2. 2

    The tone was scored by the same model that wrote it. Next time, a stronger judge plus human ratings.

  3. 3

    Whether people open it again tomorrow is still unmeasured. That needs tracking over weeks.

Looking for a product designer or product manager?

I’m open to product design and product management roles, in-house or remote. Happy to walk through any of these cases in detail.