DOC 05 · CONNECTED DEVICES

CONNECTED
DEVICES

Cross-surface flows for the Video-First Daily Habit product. Standard-tier subscribers stream on one device at a time — these wireframes show how that constraint becomes a feature: clean handoff, attention recovery, and notification-to-broadcast moments that take seconds, not minutes.

STORIES 2
STAGES 9
SURFACES PHONE · TV · DESKTOP
STORY A · 5 STAGES

Alert → Apple TV handoff

Harry isn't watching. A close-game alert fires on his phone. He walks to the TV, scans a QR with his phone, and the broadcast picks up where the alert left off — with all his personalization intact. His phone becomes the now-playing companion.

9:42● ●●●●
9:42
Wednesday, April 22
🏀
NBA League Pass now
🔥 Close game · Heat down 3
2:11 left · Tap to watch the finish
Stage 01
CLOSE-GAME ALERT FIRES
NOW
A single, earned alert hits the phone.
The alert engine fires only when a favorite-team or favorite-player game is within 5 points with under 3 minutes left — a high-bar threshold designed to feel earned, not spammy. The notification arrives on Harry's lock screen with enough context (down 3, 2:11 left) to make a one-tap decision.
Story CD-5 · Maps to Close-Game Smart Alert (NOW)
NBALEAGUE PASS

Scan with the NBA app to sign in

Open the NBA League Pass app on your phone and point the camera at the QR code on this screen.

CODE · WBKG-7421
Stage 02
TV PAIRING SCREEN
NOW
No remote-typing. Scan with the phone Harry already has.
QR-pair is the single biggest TV auth improvement we can make — typing email + password on an Apple TV remote is the most-cited friction in connected-TV streaming. The fallback code (WBKG-7421) is there for shared / family TVs where the user's phone may not be available. The footer chip is the explicit single-device disclosure — the constraint becomes part of the brand contract.
Story CD-1 · Adds Pairing API (§4b)
9:43● ●●●●
★ APPLE TV NEARBY

Sign Harry in to
Apple TV (Living Room)?

Resume Heat vs Bulls (Q4 · 2:11)
Sign in & start the game
Stage 03
PHONE BECOMES THE SCANNER
NOW
One screen, one decision: confirm and play.
The phone notification updated when the user opened LP near a paired Apple TV. The pre-checked toggle "Resume Heat vs Bulls" is the trick — one tap on a primary CTA sends an authenticated, personalized, mid-game stream to the TV. Without the pre-check, this is a 3-step flow; with it, it's one step.
Story CD-1, CD-5 · Reuses NBA ID auth
9:43● ●●●●
SENDING TO APPLE TV

Living Room · Heat vs Bulls

→
NBA
LEAGUE PASS
Welcome back, HarryLoading Heat vs Bulls…
Stage 04
HANDOFF TRANSITION
NOW
A 3-second moment that Harry never thinks about again.
Phone shows a sending state; the TV simultaneously transitions from QR pairing to a personalized splash. The greeting on the TV is the same "Welcome back, Harry" beat we use on phone and desktop — consistent across surfaces, reinforcing that this is one product, not five separate apps.
Story CD-1, CD-2 · Stream Session API begins routing to TV
9:44● ●●●●
Browse highlights, stats, and news.
CONTENT FEED
REACTIONS
NOW PLAYING ON APPLE TV (LIVING ROOM)
MIA 102 · CHI 99 · Q4 1:48
🔇
★ BAM · 18 PTS · 12 REB
Take back
LIVE · Q4 1:48
24.8K REACTING +240%
WIN PROB
MIA102
Q4 1:48
99CHI
Stage 05
STEADY STATE · COMPANION + BROADCAST
TV stays clean. Phone holds the rich layer.
The TV runs the broadcast with light overlays — Reaction Pulse, Win Probability, score pill — sized for 10-foot viewing. The phone becomes the companion strip: now-playing label, mini-scoreboard, mute, ★ Bam stat line, and the all-important "Take back" action that flips the active stream from TV to phone. No competing playback — the constraint is preserved. Phone above the strip is free to browse other content (highlights, news) without interrupting the broadcast.
Story CD-2, CD-3 · Companion strip is NEXT-priority
STORY B · 4 STAGES

Tab-blur attention recovery

Harry has the live game in a desktop tab while he works in another. A notable moment happens; his phone gets a single, well-earned notification. He clicks back to the LP tab and a "you missed" banner offers a 10-second inline replay — the live broadcast keeps playing.

Inbox · Gmail
Heat vs Bulls · LP
Slack · Standup
🔒 mail.google.com
Inbox · 23 unread
Stage 06
DESKTOP TAB IN BACKGROUND
The LP tab is paying attention even when Harry isn't.
Heat vs Bulls is playing in the LP tab (middle), but Harry has switched to Gmail (active tab, left of Slack). The desktop player publishes a "tab inactive" state via the Page-Visibility API. From this moment on, the server is filtering broadcast events through trigger rules — only a high-signal moment (favorite-player score, score change ≥6 pts in 3 min, peak Reaction Pulse) will earn a phone push.
Story CD-4 · Page-Visibility detector + event-trigger rules
9:46● ●●●●
9:46
Wednesday, April 22
🏀
NBA League Pass now
🔥 Bam dunk · Heat 22-19
You're missing it. Tap to come back to the game.
You haven't enabled phone watching while desktop is streaming · Standard subscribers can move the stream here.
Stage 07
PHONE NOTIFICATION FIRES
A single, earned notification — not a stream.
The notification is informational and metadata-only. It does not start a phone stream (Standard rule), it just brings Harry back to the desktop tab where the stream is already running. The single-line subtext at the bottom is the future-state hint: if Harry wanted to move the stream to phone, he could — but the default behavior preserves the live session he already has.
Story CD-4 · Triggered by event-rule match (favorite player scored)
Inbox · Gmail
Heat vs Bulls · LP
Slack · Standup
🔒 leaguepass.nba.com/watch
YOU MISSED · Q4 1:54
★ Bam dunk · Heat 102-99
▶ Replay 10 sec
Stage 08
TAB REFOCUS · "YOU MISSED" BANNER
Welcome back. Want to see what just happened?
When the LP tab regains focus, a banner overlays the live broadcast (which is still playing). It tells Harry exactly what he missed — Bam dunk · Heat 102-99 · Q4 1:54 — and offers an inline 10-second replay served from the missed-moment buffer. The banner auto-dismisses after 8 seconds; if Harry taps Replay, the banner converts into a picture-in-picture clip (next stage).
Story CD-4 · Missed-moment replay buffer payload
Inbox · Gmail
Heat vs Bulls · LP
Slack · Standup
🔒 leaguepass.nba.com/watch
×
REPLAY · Q4 1:54
★ Bam dunk · 6 sec left
Stage 09
REPLAY CLIP · PICTURE-IN-PICTURE
The missed moment plays without interrupting the live.
The 10-second replay clip plays in a corner picture-in-picture; the live broadcast continues full-frame behind it. When the replay ends or Harry dismisses it, he's already back in the live game with nothing skipped. This is the design promise: you can leave, you can come back, you don't lose the game.
Story CD-4 · Inline replay served from edge-cached buffer