Appearance
Design Exploration / Client Mobile / UX Concept
Client mobile UX concept: a Today-first day with a coach-thread seam.
This is an independent UX exploration for the client (trainee) mobile experience, worked from first principles about what a coaching client actually needs rather than from any existing screen. It proposes a "one thing at a time" home (Today), a coach conversation always one tap away (the Thread), and a quiet progress surface (Journey). It then works one hard case all the way through: a live workout session.
Tags: Client mobile, UX concept, Today-first, Guided session, Exploration
See it: the guided screen set — thirteen phone screens covering the Today states, the guided session, the coach thread, onboarding, notifications, and Journey. This write-up owns the reasoning; that page owns the pixels. Together they are the client mobile direction, replacing the option gallery retired in the July 2026 cleanup.
Visual directions under evaluation (July 2026). The screen set above settles layout and states but not the visual language. Four re-renders of the same thirteen screens are open for review; the interaction model is identical in all of them, only the surface differs.
- Fidelity pass — the original layouts on a real design system: type scale with a weight range, 4pt spacing, radius ramp, three elevation levels.
- A — Aurora glass — a living colour field with frosted glass floating above it.
- B — Bright — true white, with the day's one action as a single saturated colour block.
- C — Clear glass — A's glass on an almost-white canvas, colour concentrated into the media plate and the action.
None is adopted. All three colour directions use gradients and multi-hue fills that exceed the one-fill-per-screen rule in the brand colour standard; whichever is chosen, that rule needs rewriting rather than quietly overriding.
Status: all decisions resolved — retained as background reasoning
This page is a product/UX exploration, not part of the committed Public V1 scope. Its apparent divergence from the committed Today View was resolved in July 2026: Today View keeps the multi-item projection (the API contract and coach surfaces), and "one thing, ever" is the client-mobile presentation of that same projection. The presentation decisions — single card from the top of the committed ranking, sequenced reveal, the hybrid pin, and the habit tray — are promoted into the committed Today View doc, the exercise detail sheet into Exercise Library, and the guided-session interaction model (guided pacing, the come-back queue, the Focus toggle, honest session close) into Workout Logging. With the delivery-channel and persona calls settled in July 2026 — the channel rule recorded in Today View's baseline decisions and the integration register, the persona call kept here as a design stance — every decision this exploration raised is resolved. The page is retained as the direction's background reasoning — the write-up behind the screen set — and where it differs in detail from a committed doc or the Public V1 scope contract, the committed doc governs.
What the client actually cares about
The design is built against these client needs, in priority order:
- "What do I do right now?" — zero ambiguity about the next action.
- Low friction — this cannot feel like a second job or another heavy app.
- Their coach is present — supported, not alone with a task list.
- Momentum — visible proof they are moving, so they do not quietly drop off.
- Meaning — daily actions connect back to the goal they signed up for.
The core principle
Today is where you act. The Thread is where you are known.
Every day resolves to one clear action. The coach is always exactly one tap away but never in the way. The whole design protects one rule: the Today surface never shows more than one thing to decide about at a time — the habit tray below the card is a persistent accumulator, not a queued action.
Information architecture: three surfaces
There are three surfaces and no five-tab navigation.
- Today (home, default) — the one thing due now. This is roughly 90% of daily use.
- Thread (the seam) — the ongoing coach conversation, one tap from Today.
- Journey (quiet, deep) — history, goal, and milestones. Deliberately off the main path; the client goes looking for it.
The daily core loop
- Notification — "your coach left you today's focus," never a generic "open the app."
- Open to Today — one card: the action for right now.
- Act inline — the response is the log. A slider, a tap, a photo, a sentence — done without leaving Today.
- Done — an unambiguous close. If nothing else is due, the app says "that's it for today." Permission to close is a feature.
- Coach reacts in the Thread — a reaction, a note, the next nudge. That is the pull to return tomorrow.
Today, defined by its states
The hard part of a one-thing-at-a-time home is every state that is not the happy path.
| State | What is on screen |
|---|---|
| One thing due | The single card, e.g. "today's workout". The default. |
| Nothing due yet | Not a blank screen: "you're set — next check-in this evening," with the Thread reachable as the thing you can do. |
| Multiple due | Still show one, sequenced by coach intent; reveal the next only after the first resolves. Never a checklist. |
| All done | The "that's it for today" moment; a soft doorway to Thread or Journey, never a demand. |
| Missed / overdue | The make-or-break state. No red badges or guilt pile-up. It reframes forward: "pick up where you left off" — one action, not a backlog. |
Daily card authorship
"Authoring the card" splits into two layers, and only one needed a decision.
- Content — what is eligible today. Settled by the committed model: coaches build plans (program, nutrition, forms, reminders) and the system materializes dated task instances from them. The trainee does not invent tasks.
- Sequence — which single item is the card now, and how the rest queue. This is the part this exploration had to decide, because "one thing, ever" must choose one where the committed multi-item agenda does not.
The decision is the hybrid pin model. The system sequences every day by the ordering the committed Today View already computes, and the top of that rank is the card; the rest reveal one at a time. The coach can optionally pin one existing item as "today's focus" (plus a one-line note) to re-top the rank for a specific client and day. Most days no coach touches it, so the system default carries the day with zero coach effort.
Two rules keep the pin safe:
- Preemption. A pin owns the "otherwise-top" slot, not an absolute override. A time-critical item — an expiring check-in, a pain follow-up — can still preempt it, so hard deadlines and safety are never buried behind a headline.
- Granularity. The pin headlines an existing materialized task; it cannot create a free-floating task. Task creation stays in the plan tools, so content authorship lives in one place.
Only the pin (a small per-relationship, per-local-date marker referencing an existing task and note) and the preemption rule are new; everything upstream reuses committed materialization, ranking, and local-day anchoring. One-shot habits are ordinary materialized items ranked the same way; repeatable value habits leave the ranking entirely (see Habits and the tray). The card is computed on the trainee's local day.
Habits and the tray
Repeatable habits stress the one-card rule from the other side: water logged five times a day cannot become "the one thing" five times. The rule is decided by the shape of the action, not by task kind:
- The card is for things that resolve. One-shot items — a workout, a check-in, "take creatine" — complete or skip, so they queue as ordinary cards.
- The tray is for things that accumulate. Anything whose quick action is repeatable value capture never occupies the card. It lives in a quiet, persistent one-line tray below the card — "Water · 3 of 8 · +" — tappable all day, present even when no card is due, and never counted in "that's it for today."
Notification quick-actions ("log a glass without opening the app") are a possible later enhancement of the tray, not a third surface — not promoted into Public V1, where pings deep-link only. Capture reuses the owning contexts as-is — water rides Nutrition Tracking's hydration goal and logging, steps and simple metrics ride Quick-log RECORD_VALUE manual values — and the tray's denominator comes from the source plan's target, not from Quick-log. The only addition is presentation metadata on the action schema: the daily target and whether taps accumulate (water) or replace the latest value (steps).
Active session: the live workout
A workout stress-tests the model, because "one card, tap, done" was built for two-minute actions and a workout runs 40 minutes. It resolves like this:
The workout is still "the one thing." When the trainee taps start on the one thing due card, Today does not stay a home screen — it expands into an active-session mode that takes over the screen for the duration. This is not a fourth surface; it is Today zoomed all the way in, and it collapses back when done.
The session is guided / follow-along: the app drives the pace through the coach-defined plan.
- One exercise at a time. The current set is on screen (e.g. set 2 of 3), not the full plan. The "one thing" rule, one level deeper.
- Logging is inline and is the record. Marking a set done, or entering what was actually lifted, is the workout log. There is no separate "log your workout" form afterward.
- The coach is present but silent. A coach note attached to an exercise can surface quietly; the Thread does not interrupt mid-set. Presence, not a notification.
- Sets and reps are coach-defined. The plan content is fixed ahead of time; the session only controls how the trainee is walked through it.
Session presentation and focus mode
Three presentations were explored; they collapse into one engine at different levels of hand-holding, with one default and one manual toggle.
- Timeline (default). The current set is the hero, framed by a thin progress strip ("exercise 3 of 7 → then done") and a peek at the next exercise on deck. It answers both "what now?" and "how much is left?" without becoming a checklist, and it keeps the come-back queue visible.
- Focus (manual toggle). Collapses Timeline down to the single current set filling the screen, with plan, progress, and queue hidden — for heavy or distraction-prone sets.
- Conversational (onboarding only). For a trainee's first sessions, the guided flow can run as a coach-led thread that teaches the loop and builds the relationship, then graduates to Timeline.
Focus is a manual toggle in the first build, not automatic. Its behavior:
- Shared anchor. The current-set block is the same element in Timeline and Focus; toggling only strips or restores the surrounding frame. The set never jumps, so the trainee cannot lose their place mid-rep.
- Peek, don't exit. In Focus, a short pull briefly reveals progress, on-deck, and the come-back queue, then auto-collapses. Orientation without a real navigation.
- What still pierces Focus. A one-line "coming back to — leg press" banner (so a deferred set never appears unannounced), a coach note on its set, and the done screen. A Thread message does not interrupt mid-set.
- Sticky. Focus is a preference that holds across sets and future sessions until switched back.
Defer and come back
Real gyms mean an exercise is sometimes unavailable — the rack is taken, a machine is busy. Guided mode handles this with one escape valve, and the app carries the memory instead of the trainee.
- The current-set card offers "not now" alongside "log set."
- "Not now" does not skip or drop the exercise. It moves it into a quiet "come back to" queue and advances to the next exercise.
- The app owns the queue, not the trainee. One thing stays on screen; the deferral just re-orders behind the scenes, so the client never has to remember "I still owe leg press."
- When the linear pass reaches the end of the plan, the app re-presents the deferred exercises one at a time ("coming back to — leg press"). If still unavailable, "not now" re-queues it.
- Partial progress survives. If the trainee got 1 of 3 sets in before losing the machine, "not now" remembers set 2 of 3, not a restart.
When the session is done
The session closes only when the come-back queue is empty — every exercise resolved — or the trainee explicitly drops the leftover with "skip for today." Guided mode will not silently mark the session complete while something is still pending; it makes the trainee resolve it. That keeps "all done → that's it for today" honest.
A drop is a coaching signal, not just a skip. "Skipped leg press — machine was taken" (or "shoulder felt off") is useful information. In the committed spec it reaches the coach through the existing skip routing — a pain reason raises a pain alert, equipment or repeated skips create a review signal; relaying it into the Thread as a message is an unpromoted idea from this exploration. Either way, an unavailable exercise becomes feedback, not a silent hole in the log.
Relationship to committed docs
The committed Workout Logging spec already supports set-level logging, skips with reasons, partial sessions, and offline drafts, and as of July 2026 it also owns this interaction model — guided pacing, the come-back queue, the Focus toggle, and the honest session close were promoted into its Client Mobile section and Confirmed Decisions. This section remains as the reasoning behind those rules; where it differs in detail, the committed spec governs.
Exercise info without a Library tab
The committed Exercise Library promises clients cues, media, and equipment for assigned work, and this concept has no Library tab by design. The resolution: the library is a detail sheet, not a destination. Wherever an assigned exercise is named, its name is a doorway to the same sheet — from the current-set card in a session (Timeline, Focus peek, or the come-back screen) and from a logged workout in Journey; if the Today workout card later gains a pre-session exercise preview, the same sheet is its destination. The sheet renders from the program-owned exercise snapshot and the media-session contract the committed spec already defines. Free browsing of the full catalog stays out of the first build, matching the committed "does not browse the full catalog in Public V1" rule.
The seam: how Today and Thread hand off
This is where hybrids get muddy, so the rules are explicit.
- Today → Thread: after acting, the reaction and reflection live in the Thread. Action here, meaning there.
- Thread → Today: when the coach assigns something structured, it appears as Today's one card. It does not clutter the conversation.
- One source of "what's next": only Today (and its session mode) ever tells the client what to do. The Thread can invite, but the instruction to act always resolves onto the Today card.
Supporting behaviors
- Notifications are the engine. The app is closed most of the day, so the notification is the main surface. Every ping is from the coach or about today's focus, and every ping deep-links into today's card.
- Momentum without the streak trap. Progress is framed as accumulation ("you've shown up 11 times"), never a streak that resets to zero on a missed day. The deeper proof-of-progress lives in Journey.
- Onboarding teaches the loop by running it. The first session lands the client in a near-real first action within the first minute — do one thing, feel the "done," meet the coach — rather than explaining the model.
Screen-flow map
Decided
- Daily card authorship is the hybrid-pin model (see Daily card authorship).
- Session presentation is Timeline by default with a manual Focus toggle; Conversational is reserved for onboarding. Automatic phase-switching stays a deferred enhancement, not in the first build.
- Repeatable habits live in the tray, never the card (see Habits and the tray).
- Exercise info is a contextual detail sheet, not a Library tab (see Exercise info without a Library tab).
- The divergence from the committed Today View is resolved as projection vs. presentation and promoted into that doc (see the status note above).
- Chat channels carry nudges, never actions. Today (and its session mode) stays the only place that tells the client what to do. Push notifications are the engine in Public V1; the scoped WhatsApp channel carries no coaching content at all (invitation links and verification codes only, per the integration register), and the conditional Telegram linked-bot channel — if it is ever adopted — delivers privacy-safe nudges that deep-link into Today, never actions answered in-channel. Recorded in Today View's baseline decisions and the register.
- Design for busy-and-overwhelmed by default. The guided model's zero-ambiguity card, permission to close, and forward-framing serve that persona first; neither the Thread nor Journey is ever required to finish a day. Motivated-and-reflective clients get depth that is available but never demanded — Journey stays deliberately deep and deliberately off the main path. A design stance kept on this page; no contract impact.