Nimbus

Designing the moment a user realizes the system knows them.

Role
Product Designer + Developer
Timeline
February - March 2025
Stack
React · Claude Code
Outcome
Unprompted download intent
Nimbus app: Seattle weather, outfit recommendation with husky avatar, hourly forecast, and daily arc.

We all read the same forecast. We all still got it wrong.

I moved to Seattle for a master’s program alongside fifty people from California, Texas, China, Taiwan, Finland, Indonesia, India. Within the first month, we were all making the same mistakes in different ways. Three layers by 8am, overheating by noon. Someone discovers a windbreaker is not a rain jacket—arrives soaked and underdressed.

Every decision about what to wear is built on a model formed over years in a specific climate. When you move, the model comes with you — miscalibrated, undetectable, wrong for up to 18 months. Sensory adaptation is fast, but behavioral adaptation lags by nearly two years.

  • 38% of Washington’s in-migrants arrive from climatically incompatible states
  • 90% check weather daily, < 40% translate it correctly into what to wear

I spent a month building the app I wished existed when I moved to Seattle.

A feedback loop that learns your thermal profile over time. A husky avatar who wears whatever Nimbus recommends — colors extracted from the model’s text output and clothing generated dynamically, so the avatar looks different each time because the recommendation is genuinely unique. After wearing the outfit, a two-tap check-in asks how the day felt and why. That response trains the next recommendation. The more you use it, the more it knows you.

Loading state with playful thinking lines reflecting user check-in input.
Loading animation: thinking copy mirrors what the user just shared.

That was the idea. Then I ran usability testing with people from my own cohort — the exact people I’d watched struggle with this problem for months.

I sat next to a member of the cohort and watched them complete the check-in without knowing it did anything.

They tapped through the survey. Rated the day. Said why it was cold. Hit submit, the animation played, and they moved on. In the debrief I asked: did you know that response would change what the app recommends tomorrow?

She looked at me. “I thought I was just, like, rating the day. I didn’t know it was actually doing something.”

The feedback loop — the entire reason Nimbus was different from every other weather app — had happened. They thought they were rating the day for the developers. Three of five participants said the check-in had no effect on anything. This was the thing I built Nimbus to solve and I’d made it invisible.

From findings to fixes

Each change maps to what participants said in the room—stacked here as before and after, then the two check-in builds side by side.

Before

Survey as a bottom pop-up after the outfit tile—severed from its consequence. Architecturally it read as the end of the flow, so people assumed they were “just rating the day.”

After

Survey lives inside the recommendation tile—the transition between today and tomorrow. Loading copy replays their own words (“Running numbers on warmth…”) so the system shows it heard them before it shows what it concluded. I rejected a one-line confirmation: a message explains; an experience proves.

Before

“Calibrated for you” landed as a confident claim with no source—alarming before helpful.

After

“Based on your last 3 check-ins.” The source appears at the moment of encounter. Settings name every signal Nimbus uses and every gap it acknowledges, including what it cannot know.

Before

Same orientation voice for everyone. P2, a year in Seattle: “I’ve been here a year. I’m not that lost anymore.” The framing that helped in week one became proof the system hadn’t noticed them changing.

After

A time-in-Seattle variable shifts register as people acclimate—from “48°F might feel colder than you expect” to “classic flannel day.” The voice grows from orientation tool to local companion.

V1 pop-up

Version 1: survey as bottom sheet after the outfit tile.
Version 1: survey as bottom sheet after the outfit tile. First build: check-in as a bottom sheet after the outfit tile.

V2 inline tile

Version 2: survey nested in the recommendation tile with thinking copy.
Version 2: survey nested in the recommendation tile with thinking copy. After usability: survey inside the tile, thinking lines before the next outfit.

The impact

All five participants said they would download it. Three asked if it was on the App Store. Task completion on the core AI interaction went from 20% to 100% after one redesign cycle. Every finding produced a direct design response.

20% → 100% Core AI task completion

After one redesign cycle tied to usability findings.

5 / 5 Would download

Three participants asked if the app was on the App Store.

The participants who said they’d download it weren’t reacting to the weather recommendations. They were reacting to the feeling that the app was paying attention. A participant who spent seven months overdressing and struggling to adjust to the Seattle winter said it felt like talking to someone who’d been listening the whole time.

That’s what the redesign produced. Not better outfit suggestions. The feeling of being known.

Image: final designs — loading, success, error states