Watch the silence.
Same merchant. Same 248 MB file. One system stays silent. The other speaks.
71% of merchants abandoned the upload when progress was unclear. We rebuilt the flow around system transparency — visible states, recovery as a first-class path, real Lighthouse-grade performance reassurance. The simulator below replays both flows at the same time. Watch the merchant's anxiety change.
- Role
- Lead Product Designer · Discovery → delivery
- Scope
- Activation · Performance UX · Polaris
- Timeline
- Mar 2025 – May 2025
- Team
- 1 PM · 2 eng · 1 designer (me)
The system was silent. Merchants assumed it was broken.
Merchants struggled to upload videos because the flow lacked clarity, predictability, and performance transparency. They couldn't see what was happening, didn't know how long it would take, and feared large videos would hurt their store.
Visibility friction
71%“I can't tell if it's uploading or frozen. Should I start again?”
Performance anxiety
−35%“I'm worried this video will slow down my store. I can't afford that.”
Users fail when systems are silent.
Most upload UIs invent a single spinner and call it progress. We mapped every backend phase to a dedicated UI state — and the system stopped lying about timing.
01
Real progress, not fake animation.
The progress bar reads from the actual upload phases — bytes pushed, bytes confirmed, server-side encoding percent. Animations don't lie about timing.
02
Phase-bound transitions.
Each backend phase has a dedicated UI state. Upload → Processing → Compression → Ready aren't a single spinner — they're four explicit moments with their own copy.
03
Estimates, not 'please wait'.
Time-to-completion is computed from real network throughput. Merchants see a falling number, not an indeterminate spinner.
Failure isn't an edge case. It's a UI state.
Most uploaders treat errors as afterthoughts wrapped in toasts. We treated each failure mode as a primary state — with a dedicated UI, an explicit cause, and a one-click recovery.
Failure 01
Connection lost
Cause
Network drop · partial upload
Response
Auto-retry with exponential backoff (3s · 9s · 27s). The merchant sees a calm pause, not a failure modal. The file's checksum is preserved across retries.
Failure 02
File appears damaged
Cause
Corrupt encoding · truncated file
Response
Explicit identification — 'this file appears damaged'. One CTA: try another file. We don't dump a stack trace; we explain what we know.
Failure 03
Server timeout
Cause
Long-running compression · queue depth
Response
The upload backgrounds itself. Merchant gets an inline note + an email when ready. No work was lost. They can leave the tab.
Where will this video appear? The system already knows.
Tagging confusion was the top cause of broken widget placement. We replaced free-form tagging with auto-suggested tags pulled from product titles, vendor data, and previous tags — and tagging errors collapsed −41%.
01
Auto-suggested from catalog
The tagger reads the merchant's product titles, vendor data, and existing tags to propose 3–5 tags. Merchants accept or remove — they never start blank.
02
Inline rule explanation
Below each tag: 'Will appear on Spring collection PDP'. Merchants see the consequence of each tag before they commit, not after.
03
Guided over flexible
Free-form text inputs were replaced with chips drawn from the merchant's own data. Most uploads now finish tagging in under 8 seconds.
Insight quote · merchant interview
“Where will this video show up? I'm not sure if I tagged it right.”
The merchant fear was site speed. The product proved otherwise.
Performance anxiety blocked adoption before any real performance issue occurred. The redesign answered the question with evidence: real Lighthouse audits across twelve merchant storefronts, run before and after the upload flow shipped.
Performance (Mobile)
38→90
Real merchant store · 4G profile
Performance (Desktop)
59→99
Same store · cable profile
Best practices
75→100
HTTP, console, image format
SEO
92→100
Crawlability, alt text, semantic markup
↓ 35% merchant performance concern. Real Lighthouse audits across 12 test storefronts confirmed videos shipped through the new flow no longer regress site speed.
Activation lifted by half.
Measured through A/B testing, session analysis, and post-release support data. Tracked across the first 60 days post-launch.
Hero metric
Upload-to-activation conversion
Same merchants, same content, same network. The flow changed; the conversion followed. Activation is the product's first revenue gate — every percentage point compounds.
+27%
Merchant confidence
post-release survey
−28%
Upload retries
−35%
Performance concerns
−22%
Upload + tagging tickets
−41%
Tagging errors
guided input
Merchant feedback · post-release
“The new flow feels smoother and I always know what's happening. It's much easier to activate videos now.”
Four lessons that traveled with me.
- 01
Clear system feedback matters more than raw speed. Merchants felt more confident when each upload state was clearly communicated, even when processing took slightly longer.
- 02
Performance anxiety can block adoption before real issues occur. Lack of transparency during compression increased hesitation; real-time reassurance let merchants proceed.
- 03
Users fail when systems are silent — not when features are complex. Most drop-offs happened when the interface stopped explaining what was happening.
- 04
Guided flows outperform flexible-but-unclear setups. Tagging errors collapsed once rules were explained through guided steps instead of free-form choices.