Skip to main content
Case · 052026 · 8 weeks · 3 versions

Salesync Settings.

How I turned a 30-block legacy scroll — where one click could rewrite a customer contract — into an admin hub people actually trust. Independent 2026 concept work post-Coditas.

Client

Salesync

Role

Product Designer (sole designer on this surface)

Surface

Web · Enterprise · Admin Console

Process

  • Audit
  • Information Architecture
  • Interaction Design
  • Accessibility
  • Design System
  • Validation
Salesync Settings — Salesync V3 — hub overview with SAGE AI recommendations panel

The arc · Point A → Point B

A — Where it started

A 30-block vertical scroll. No search. Implicit saves. Deprecated toggles next to load-bearing ones. One misclick could silently rewrite a signed customer contract.

B — Where it landed

A hub-and-spoke admin console. ⌘K targeting in under 2 seconds. Dependency-review modals before every cascading save. WCAG 2.2 AA across every token pair. Built to survive the next decade of accretion.

What it moved

The numbers, in plain sight.

142

Settings audited & rationalized

30 → 8

Navigation compression

≤ 2s

Time-to-target (⌘K)

100% AA · 75% AAA

WCAG 2.2 conformance

The story · 7 chapters

How Salesync went from point A to point B.

00

The Brief

Make the unsurvivable, survivable.

When I joined the project, Salesync's company administration page had been growing by accretion for a decade. 142 settings. 30 vertical blocks. No search. No grouping logic that mapped to how admins actually worked.

The real problem wasn't ugliness — it was risk. Deprecated toggles sat directly next to active, load-bearing configurations. Saves were implicit. A single click could cascade across billing, permissions, and integrations, silently rewriting a signed customer contract before anyone noticed.

The brief from the CEO was one sentence: stop the silent breakages and make this page survivable for the people who use it 40 hours a week.

Pull-out · The Brief

30 blocks

V1 vertical scroll, zero search

01

The Audit

Designing by deletion.

Before a single frame, I had to stop the bleeding. I exported the entire V1 page as one continuous screenshot and annotated every setting in red and green: keep, deprecate, hide, or move.

That single artifact replaced a 30-question stakeholder doc. Two executive sponsors, the eng lead, and the CS lead all aligned in two meetings. We deprecated or hid 13 legacy settings outright — shrinking the design surface by ~9% before architecture work even started.

The lesson: alignment is a design problem. The right artifact moves more weight than the right meeting.

Pull-out · The Audit

13 settings

Cut before a single frame was drawn

Annotated V1 audit — Company Settings and Company Administration exported as continuous screenshots, with every block marked keep / deprecate / hide / move; this artifact replaced a 30-question stakeholder doc.

Annotated V1 audit — Company Settings and Company Administration exported as continuous screenshots, with every block marked keep / deprecate / hide / move; this artifact replaced a 30-question stakeholder doc.

02

Information Architecture

Thinking in tasks, not systems.

My first redesign attempt introduced a sidebar — but kept the old mental model, organizing 16 flat items by the technical backend that produced them. Cleaner, yes. Survivable, no.

I ran an open card sort with 2 Salesync admins. The pattern emerged within the first session: admins don't think in subsystems. They think in task frequency — 'things I do every Monday' vs. 'things I touch once a quarter'.

We collapsed 16 technical buckets into 8 task-oriented categories. That number wasn't arbitrary — it sits inside the 7±2 working-memory budget, which means an admin can hold the whole map in their head while they work.

Pull-out · Information Architecture

30 → 8

Technical buckets → task categories

V2 dispositions — sidebar groups settings by subsystem (CRM, SFDC, List, Alerts); a cleaner shell, but still organized by the backend that produced each row.

V2 dispositions — sidebar groups settings by subsystem (CRM, SFDC, List, Alerts); a cleaner shell, but still organized by the backend that produced each row.

V3 dispositions — task-based tabs (Outbound · Inbound · Meeting · Deprecated) plus 30-day usage bars and dependency-affected counts, so admins triage with signal instead of guesswork.

V3 dispositions — task-based tabs (Outbound · Inbound · Meeting · Deprecated) plus 30-day usage bars and dependency-affected counts, so admins triage with signal instead of guesswork.

V2 Lightning Settings — toggles rendered as an undifferentiated stack, with no hint that flipping one cascades into others.

V2 Lightning Settings — toggles rendered as an undifferentiated stack, with no hint that flipping one cascades into others.

V3 Lightning Settings — every dependent toggle wears an ‘N affected’ chip, SAGE AI surfaces context-aware suggestions, and unsaved changes are counted in the header.

V3 Lightning Settings — every dependent toggle wears an ‘N affected’ chip, SAGE AI surfaces context-aware suggestions, and unsaved changes are counted in the header.

V3 Overview hub — global ⌘K search, recent activity feed, and a SAGE AI recommendations panel framing the 8 task categories / 142 settings sitting underneath.

V3 Overview hub — global ⌘K search, recent activity feed, and a SAGE AI recommendations panel framing the 8 task categories / 142 settings sitting underneath.

03

Interaction Design

Patterns that carry the weight.

Two patterns do the heaviest lifting in V3. First: a global ⌘K command palette. It collapses the time-to-target from 8–22 seconds of scroll-and-scan to under 2 seconds of typed intent. Power admins never touch the sidebar.

Second: dependency-aware save modals. When an edit cascades — say, a permission change that affects billing logic — the save is intercepted and a modal shows a before/after diff with the full list of affected entities. Paired with a persistent unsaved-state floating bar, the UI itself becomes the form's visual memory.

Together, these turned 'one wrong click rewrites a contract' into 'every consequential save is reviewed before commit'.

⌘K command palette — typed intent collapses 8–22s of scroll-and-scan into under 2s, with grouped results across Settings, Actions, and Documentation plus an ‘Ask SAGE AI’ fallback.

⌘K command palette — typed intent collapses 8–22s of scroll-and-scan into under 2s, with grouped results across Settings, Actions, and Documentation plus an ‘Ask SAGE AI’ fallback.

Dependency-review modal — every cascading save is intercepted with an impact summary (values changing, visibility changing, disabled) and a before/after diff on each affected setting before commit.

Dependency-review modal — every cascading save is intercepted with an impact summary (values changing, visibility changing, disabled) and a before/after diff on each affected setting before commit.

04

Accessibility

A constraint, not a cleanup pass.

Accessibility was baked into the tokens from day one — not bolted on at the end. In V1, helper text used a neutral that hit just 2.54:1 contrast against the dark canvas. That's not 'borderline'. That's a hard fail, on the text that explains what every setting actually does.

I raised a single primitive (neutral/200) by two stops. Because every semantic token derived from it, the fix cascaded through the entire system in one PR. Every text-on-background pair now meets WCAG 2.2 AA. Six of eight pairs hit AAA. Primary text landed at 14.8:1 — well past the 7:1 AAA threshold.

Accessibility done at the token layer is cheap. Done at the component layer, it's a cleanup pass that never finishes.

Pull-out · Accessibility

14.8:1

Primary text — AAA, 2× the threshold

05

Design System

Built for the next decade of accretion.

The original page didn't fail because the designer was bad. It failed because no system held it together — every setting was a one-off. So V3 doesn't ship as a page; it ships as a contract.

Eight section primitives. Three modal patterns. A single token surface. Every new setting an engineer adds in 2027 will inherit the contrast, spacing, and dependency-review behavior automatically. The page will get bigger. It won't get worse.

The Settings design-system contract — Foundations, Component Rules, Settings Architecture, Dependency UX Rules, and a Deprecated/Removed registry, so every setting added in 2027 inherits the page's behavior automatically.

The Settings design-system contract — Foundations, Component Rules, Settings Architecture, Dependency UX Rules, and a Deprecated/Removed registry, so every setting added in 2027 inherits the page's behavior automatically.

06

Outcome

What 8 weeks bought.

Eight weeks for a settings page sounds generous until you remember every row was load-bearing on a customer contract. The work shipped on time, in three versions, with zero rollbacks.

SAGE — the AI recommendations layer — lives directly on the overview, in a dedicated violet token so it can never be confused with a system warning. It orients admins at the moment of intent, without interrupting the moment of action.

What I'm proudest of: the page is now boring. Admins stopped writing tickets about it. That's the goal.

Pull-out · Outcome

0 rollbacks

3 versions shipped on time

05. 142 settings → 8 task-based categories. ⌘K targeting in under 2s. WCAG 2.2 AA across every surface. Zero silent contract breakages.

Want this kind of work on your team?

Let's design your hardest surface together.

Next case · 01

Bullpen.

I designed the native V2 that slashed a 22-click onboarding flow down to 3. In 2026, I evolved the architecture into V3—a modern, productized concept.