SkrutSkrut

Best on a bigger screen

Skrut is a focused desktop workspace — chat, brief and flags side by side. Open it on your laptop or desktop to get going.

Switch to desktop ↗
Skrut
NJ
Chat Bot

6 open gaps to resolve

Pick one to start a focused thread — or just ask anything below.

PRD · 29 Jun 2026

New API key test

Design Doc · single source of truth

New API key test · Notification Preferences Settings

Status · Exploring
Updated 29 Jun 2026
Sources Notes

Settings screen to manage notification delivery channels (push, email, SMS) by category. Needs definition of first-load defaults and save-failure handling.

01

Context & Problem

Problem

Users need granular control over how they receive notifications across multiple channels and categories.

Why now

Quick test to validate the interaction model and state management.

Hypothesis

Toggles per channel per category will give users control without overwhelming them.

02

Goals & Success

Goals
Enable per-channel preference controlDefine sensible first-load defaultsHandle save failures gracefully
Non-goals
Notification frequency tuning (e.g., digest schedules)Channel setup or validation flow
03

Scope

In · this release
Push toggle per categoryEmail toggle per categorySMS toggle per categorySave success stateSave failure state
Out · later
Onboarding channel setupFrequency or quiet hoursAnalytics or preference history
04

Users & Jobs

Primary persona

User managing notification overload

Job to be done

When I receive too many notifications, I want to disable certain channels or categories so I can stay informed without distraction.

05

User Stories

P0As a user

As a user, I can toggle push notifications on/off per category so I control when I get alerted.

P0As a user

As a user, I can toggle email notifications on/off per category so I reduce inbox noise.

P0As a user

As a user, I can toggle SMS notifications on/off per category so I limit text volume.

P1As a user

As a user, I see a success message when preferences save so I know my changes are persisted.

P1As a user

As a user, I see an error message and retry option when save fails so I can recover without data loss.

06

User Journey

YOU ARE HERE01 · ENTRY

Load Settings

GoalDisplay current preferences
FeelsCurious but cautious
FrictionDefaults unclear; unclear what state is saved
→
02 · SCAN

Review Categories

GoalUnderstand available toggles
FeelsInformed
FrictionToo many categories; unclear grouping
→
03 · ADJUST

Toggle Preferences

GoalChange one or more settings
FeelsEmpowered
FrictionAccidental taps; no undo
→
04 · CONFIRM

Persist Changes

GoalSave preferences
FeelsConfident or anxious (if save fails)
FrictionNetwork failure; unclear recovery path
07

Flows & Information Architecture

  • Notification Preferences
    • Push Category List
      • Per-Category ToggleOne toggle per category
    • Email Category List
      • Per-Category Toggle
    • SMS Category List
      • Per-Category Toggle
    • Save Action→ success / error state
08

States & Edge Cases

Screen / FlowDefaultLoadingEmptyErrorSuccessSave FailureOffline
Settings Root
Push Category Toggle
Email Category Toggle
SMS Category Toggle
Save Confirmation
Designed To do Needs attention N/A
09

Rationale & Alternatives

How should first-load defaults be set?
All channels on per categoryAll channels off per categoryServer-side per-user defaults
Why  Server-side defaults let the backend respect onboarding choices and platform capability.
How should save failures be handled?
Silent retry on backgroundShow error; user taps retryRevert UI; show toast error
Why  Explicit retry gives user confidence that the action will be completed and lets backend handle transient issues.
10

Handoff & Definition of Done

  • Figma: All five state matrices above designed and validated (Default, Loading, Error, Save Failure, Offline, Success)
  • API spec: Save endpoint and error responses documented; retry logic defined
  • Copy: First-load defaults, success messages, error messages, retry CTA approved by product
  • QA: Test plan covers all 7 state columns and 5 screens; network throttle scenarios included
Living doc · keep Journey, Flows, States & Rationale current — they go stale fastest.
Built with Skrut — the design-doc auditor.

On this page

Flags (6)

0 / 6 flags resolved
Empty States

What does the user see if a category list is empty (no notification types configured server-side) — a helpful prompt or a confusing blank section?

Error States

When save fails, does the UI show which preferences failed to save, or does it lump all changes under one error message?

Loading & Async

Is there a skeleton or spinner when preferences are first loading, or does the user see an empty screen while data fetches?

Offline & Connectivity

If the user toggles a preference while offline, does the UI queue the change for later, show a warning, or disable the toggle entirely?

Existing Feature Impact

Does this settings screen integrate with an existing notification history or muted-list feature, or is it purely forward-looking?

Accessibility

Are toggle components keyboard-accessible and do they announce state change (on/off) to screen readers?