UX Case Study · Independent Concept

Designing Sonos setup so problems never become support tickets.

Instead of a fixed step-by-step journey, I designed setup as a state machine: every moment, good or bad, has a clear screen and a clear way out.

An independent concept project by Arif Khan. Not affiliated with or commissioned by Sonos.

The short version

What this is, in three lines.

1

The problem

Setup is where users first meet a product. When it breaks, they contact support, return the speaker, or leave a bad review.

2

The approach

A setup system built on states (Idle, Connecting, Error), with a recovery path mapped for every error.

3

The aim

Stop problems before they turn into support tickets, and give designers and developers one shared language.

Why it matters

When a Sonos app launch went wrong, it was a business problem too.

In May 2024 Sonos released a redesigned app that many customers found flawed. Public reporting from that time shows the scale of the impact.

$20–30M

Estimated cost to fix

Company estimate, given to investors by the CEO.

$1.7B → $1.5B

Revenue forecast cut

The top end of the yearly revenue forecast was lowered.

2 launches

Products delayed

Planned Q4 launches were postponed to focus on the app.

Sources — click to verify

These are company estimates and forecasts reported in 2024, not the exact cost of setup issues alone.

The approach

Replace a fixed journey with a state machine.

A normal setup flow assumes everything goes right. Real homes don’t. So every state the speaker can be in gets its own clear screen, and every error gets a mapped way to recover.

Idle→Connecting→Error→Recovery

Simplified view of the idea.

Touch-safe controls

A strict 44×44px boundary grid prevents accidental taps across phone, tablet and desktop.

Guidance that adapts

The layout shifts with hardware status, and sub-menus keep users informed during network dropouts.

Hidden Wi-Fi, handled

Manual network entry lets users join hidden networks without resetting the speaker.

The system

11 pillars behind every screen.

1Reusable components2State-transition engine3Multi-platform permission map 4Speaker variance (Era 300, Era 100, Roam 2)5Error-to-recovery mapping6Verified hardware instructions 7API contracts8Local mock services9Motion tokens 10Accessibility standards (WCAG)11Testable acceptance criteria
Design meets engineering

One language for designers and developers.

The setup code is split into 6 isolated layers, from style components down to network provisioning adapters. Device states map directly to what users see on screen.

device state  → screen
Idle        → ready screen
Connecting → progress + guidance
Error      → recovery steps

Simplified illustration.

What’s next

Where this could go.

Phase 1

Turn the component framework into a shared asset that performs consistently on mobile, tablet and desktop.

Phase 2

Use local device discovery to spot network problems before a connection fails completely.

Phase 3

Extend the tokenized design variables to future smart-home platforms and new speaker lines.

Good setup design doesn’t just look right.
It stops problems before they start.