⚙️ Build User Preference Settings
Overview
Give users fine-grained control over Sobers Buddy — default on, easy to customize or opt out.
Goals
- One-tap disable without guilt
- Granular control over frequency and tone
- Preferences sync across devices
- Respect user choices completely
Settings Schema
interface SobersBuddyPreferences {
enabled: boolean; // Master toggle
// Frequency
messageFrequency: 'rarely' | 'normal' | 'often'; // 1-2/day default
quietHours: {
enabled: boolean;
start: string; // "22:00"
end: string; // "08:00"
};
// Personality
tone: 'warm' | 'direct' | 'encouraging' | 'gentle';
avatar: string; // Avatar ID
// Content
slipResponseSuggestions: boolean; // Show suggestions on slip
milestoneCelebrations: boolean; // Celebrate streaks/milestones
triggerAnticipation: boolean; // Proactive check-ins
// Privacy
dataRetention: '30days' | '90days' | '1year' | 'forever';
allowLearning: boolean; // Pattern analysis
}
UI/UX Design
Settings Screen Structure
Implementation Tasks
Acceptance Criteria
Edge Cases
- User disables mid-conversation → graceful stop
- Preference sync conflict → last-write-wins with toast
- First-time user → show onboarding, not settings dump
Related
Part of Sobers v2
⚙️ Build User Preference Settings
Overview
Give users fine-grained control over Sobers Buddy — default on, easy to customize or opt out.
Goals
Settings Schema
UI/UX Design
Settings Screen Structure
Implementation Tasks
Acceptance Criteria
Edge Cases
Related
Part of Sobers v2