PulseKit coach dashboard · design mock v2 · 23 Sep 2026

Uplift in PulseKit

Uplift's own composer, dropped into the attention-queue slot: inbox rows on the left, the thread with proactive purposes, the 2×2 draft grid, the rich-text editor and send on the right. At phone width it becomes the Uplift inbox, with the composer expanding under the tapped row. Everything inside the red border is Uplift's product system; everything around it stays PulseKit.

Theme
Width
State
Test Account
All 3Needs check-in 3At risk 2Ending soon 0
ClientStatusAdherence · 28dNext actionLast active
NA
Nathan AzevedoPF 4 Day Split · Phase 1
Watch0%Next scheduled session4d ago
Logged workout
T
testHybrid Fat Loss · Phase 1
Watch0%Next scheduled session16d ago
Checked in
YS
Yusef SmithHybrid Fat Loss · Phase 1
WatchNext scheduled session12/08/2026
Logged workout

Coach attention queue

Unread Pulse conversations

Reply from here. Uplift drafts in your voice, you pick, edit and send.

3
Proactive messages on Inactivity alerts Normal · 24, 48, 72h Sends via WhatsApp through Uplift

Calendar

4 planned · 0 completed · 1 missed21 Sept — 27 · Week
Mon 21
Nathan AzevedoChest & Shoulders
⚠ Missed
Tue 22
No sessions
Wed 23
Nathan AzevedoLower 1 · Quads
○ Scheduled
Thu 24
No sessions
Fri 25
Nathan AzevedoBack & Arms
○ Scheduled
Sat 26
Nathan AzevedoLower 2 · Hams & Glutes
○ Scheduled
Sun 27
No sessions

What's inside the slot, piece by piece

Every element is lifted from uplift_coach so the build is a port, not a redesign.

From the Uplift inbox (ClientRow)

  • Unread dot with halo, 40px avatar with channel badge, name and relative time on one line, two-line preview, selected row with the 3px brand bar.
  • Quick-send pill under a row when a short draft exists. Shimmer sweep while it's ready; turns green on sent.
  • Inactivity alert row. Orange dot, "Inactivity alert" badge and the reason ("4 days quiet · missed Mon"). This is the alert Uplift already raises at the Normal sensitivity (24, 48, 72h).
  • Phone width follows the Uplift narrow-sidebar pattern: tapping a row expands the composer underneath it on one continuous surface.

From the Uplift composer (ComposerAssistant + ChatPage)

  • Proactive purpose bar: the six built-in purposes, horizontally scrolling, brand-light when active. Check In is active on the inactivity row because the thread has no inbound message to reply to.
  • 2×2 draft grid with tone labels in Uplift's tone colours (Happy green, Tough orange, Question blue, Concise purple) and the pencil that says "opens for editing, doesn't send". Shimmer sweeps across ready drafts; the block shimmer is the generating state.
  • Rich-text editor: the picked draft arrives as coloured segment pills, each with its × so a coach can delete a clause without retyping. Clear and send sit inside the iMessage pill.
  • Send button shimmers while a draft is loaded. Sending replaces the editor with the shimmer block and "Sending…" exactly as the Uplift card does.

The upsell, without a modal

  • Not activated state: the whole composer renders with real drafts but a bar over the editor says "Send your first reply free". One tap creates the Uplift account with the coach's Pulse email and business name and lifts the bar. No pricing, no form.
  • Status line in PulseKit's own styling shows the two settings Yusef asked about, proactive messages and inactivity alerts, both on by default for the cohort.
  • Open questions for Yusef: does he want the composer inline in the slot (this) or in a slide-over like ClientDetailPanel; and should a sent reply also appear in the Pulse conversation, which Uplift's GHL sync can do.

Copy, drafts and figures are placeholders. Uplift elements reference client/src/components/Dashboard/ClientRow, ui/ComposerAssistant, ui/RichTextEditor and pages/ChatPage in uplift_coach. Ian · Uplift.