A privacy-first digital recovery journal for the recovery community
Document Version: 2.2 Status: ACTIVE Last Updated: 2026-02-23
This README serves as the entry point for the SoNash Recovery Notebook project:
- Project Overview - What SoNash is and what it does
- Quick Start - How to get started with development
- Documentation Index - Links to all project documentation
- Status Dashboard - Current project progress and milestones
- INTEGRATED_IMPROVEMENT_PLAN.md - Unified improvement roadmap (COMPLETE - archived)
- DOCUMENTATION_INDEX.md - Complete documentation catalog with summaries
- ROADMAP.md - Product roadmap and feature planning
- ROADMAP_LOG.md - Archive of completed roadmap items
- DEVELOPMENT.md - Developer setup and testing guide
- ARCHITECTURE.md - Technical architecture and design patterns
- docs/SECURITY.md - Security standards and practices
- AI_WORKFLOW.md - AI assistant navigation guide
- AI_REVIEW_PROCESS.md - Code review process
- CLAUDE.md - AI context and critical patterns
- docs/agent_docs/CODE_PATTERNS.md - Full pattern reference (90+ patterns)
- docs/TESTING_CHECKLIST.md - Comprehensive testing guide (includes manual checklists)
- docs/plans/TESTING_USER_MANUAL.md -
UI testing with
/test-suiteskill (27 protocols, 5 phases)
- docs/APPCHECK_SETUP.md - Firebase App Check configuration
- docs/INCIDENT_RESPONSE.md - Incident response runbook
- docs/SERVER_SIDE_SECURITY.md - Server-side security implementation
- docs/decisions/ - Architecture Decision Records (ADRs)
SoNash is a personalized digital recovery notebook that helps individuals track their sobriety journey with secure, real-time data synchronization. The app features a photo-realistic notebook interface, unified journal system, and privacy-first design.
- Photo-realistic weathered blue leather notebook on wooden desk background
- Dynamic personalized text with embossed effect:
- "SoNash" branding
- "Sober Nashville" subtitle
- "[Nickname]'s Recovery Notebook" (personalized)
- "You've been clean for X days" counter
- "Turn to Today's Page" call-to-action button
- Pearl-colored text (#e0d8cc) for optimal contrast
- Warm lamp glow lighting effect
- Responsive sizing with 3x scale option
- Multi-page notebook shell with page flip animations
- Lined paper texture with realistic styling
- Bookmark ribbon navigation
- Page sections: Journal, Goals, Reflections, Contacts
- Frontend: Next.js 16.1 (App Router), React 19.2.3, TypeScript 5.x
- Styling: Tailwind CSS v4, Framer Motion 12, shadcn/ui
- Backend: Firebase (Auth, Firestore, Cloud Functions v2, App Check)
- Security: reCAPTCHA Enterprise, App Check, Firestore Rules, Rate Limiting
- Testing: Node test runner, c8 coverage (99.7% passing)
- Monitoring: Sentry (optional)
``` ├── .claude/ # Claude Code development infrastructure │ ├── agents/ # 25 specialized AI agents (architecture, security, testing, etc.) │ ├── skills/ # 59 task-specific skills (senior roles, debugging, research, design) │ ├── hooks/ │ │ └── session-start.sh # Auto-install dependencies on session start │ └── settings.json # Hook configuration ├── app/ │ ├── page.tsx # Main app entry │ ├── layout.tsx # Root layout with fonts │ └── globals.css # Global styles & design tokens ├── components/ │ ├── notebook/ │ │ ├── book-cover.tsx # Main book cover component │ │ ├── notebook-shell.tsx # Opened notebook container │ │ ├── notebook-page.tsx # Individual page component │ │ └── bookmark-ribbon.tsx # Navigation ribbon │ ├── desktop/ │ │ ├── lamp-glow.tsx # Ambient lighting effect │ │ ├── pencil.tsx # Desktop element (WIP) │ │ └── sobriety-chip.tsx # Milestone chip (WIP) │ └── ui/ # shadcn components └── public/ └── images/ # Static assets ```
- Book Cover: Photo-realistic notebook with personalized sobriety counter
- Today Tab: Mood tracking, craving/used logging, recovery notepad
- Journal System: Unified timeline with entry types (stamps, stickers, notes)
- Growth Tab: Spot checks, night reviews, gratitude lists
- Meetings: Directory with search and fellowship filters
- Security: App Check, rate limiting, encrypted storage, GDPR compliance
- Settings page UI improvements
- Enhanced profile management
- Recovery library (glossary + etiquette guide)
- Claude Code Development Infrastructure (December 31):
- SessionStart hook for automatic dependency installation
- 25 specialized AI agents (architecture, security, testing, DevOps, documentation)
- 59 task-specific skills (senior roles, debugging, research, design tools)
- Auto-build for tests and Firebase Functions on session start
- Admin Panel Enhancement (Phases 1-3):
- Dashboard with system health checks and user metrics
- Enhanced user management (search, detail view, admin actions)
- Background jobs monitoring with manual triggers
- Today Page UX Overhaul (All 10 improvements):
- Progressive check-in flow with visual progress tracking
- Loading states and professional skeleton screens
- Enhanced visual feedback (animations, glow effects)
- Quick Actions FAB with 4 customizable shortcuts
- Smart contextual prompts (evening reminder, HALT suggestion, streak celebration)
- Keyboard shortcuts (press 1-4 to select mood)
- Offline-first support with network status indicator
- Accessibility improvements (ARIA labels, screen reader support)
- Code quality: custom hooks (useSmartPrompts, useScrollToSection)
- localStorage persistence for dismissed prompts
- Customizable Quick Actions FAB: User-configurable action buttons, drag-and-drop ordering, custom phone numbers
- Sentry Error Tracking Integration: Error dashboard with plain-English translations
- Meeting proximity detection and maps
- Nightly inventory tools (10th step)
- Sponsor connection and support network
- Speaker recordings library
- See ROADMAP.md for full product roadmap
Last Updated: March 20, 2026 Overall Progress: ~15% Current Focus: 🔧 1. Tooling & Infrastructure
| Milestone | Status | Progress |
|---|---|---|
| M1 - Foundation | ✅ Complete | 100% |
| Integrated Improvement Plan | ✅ Complete | 100% |
| 🔧 1. Tooling & Infrastructure | ⏸️ ACTIVE | 0% |
| 🔧 2. Code Quality Overhaul | ⏸️ BLOCKED | 0% |
| 🔧 3. Data Effectiveness | ⏸️ BLOCKED | 0% |
| 🔧 4. System-Wide Standardization | ⏸️ BLOCKED | 0% |
| 🚀 Operational Visibility | ⏸️ BLOCKED | 25% |
| M1.5 - Quick Wins | ⏸️ Paused | 20% |
| M1.6 - Admin Panel + UX | ⏸️ Paused | 75% |
| M2 - Architecture | ⏸️ Optional | 0% |
| M3 - Meetings | 📋 Planned | 0% |
| M4 - Expansion | 📋 Planned | 0% |
| M4.5 - Security & Privacy | 📋 Planned | 0% |
| M5 - Offline + Steps | 📋 Planned | 0% |
| M6 - Journaling + Safety | 📋 Planned | 0% |
| M7 - Fellowship Suite | 📋 Planned | 0% |
| M8 - Speakers | 📋 Planned | 0% |
| M9 - Native App | 📋 Planned | 0% |
| M10 - Monetization + Future | 🔬 Research | 0% |
- ✅ M1 - Foundation
- ✅ Integrated Improvement Plan
- 🔄 🔧 1. Tooling & Infrastructure (0%)
See ROADMAP.md for detailed milestone information.
This app uses Firebase Firestore with a user-centric data model.
-
User Profiles (
/users/{uid}):- Contains
nickname,cleanStart(Timestamp), and preferences. - Security Rules: strictly
request.auth.uid == uid(seefirestore.rules).
- Contains
-
Daily Logs (
/users/{uid}/daily_logs/{date}):- Store check-ins, mood, and journal entries.
- Guarded client-side via
lib/security/firestore-validation.tsto mirror the deployed rules.
| Roadmap tab | Implementation | Status | Feature flag |
|---|---|---|---|
| Today | components/notebook/pages/today-page.tsx |
Available | – |
| Resources | components/notebook/pages/resources-page.tsx |
Available | – |
| Support | components/notebook/pages/support-page.tsx |
Available | – |
| Growth | components/notebook/roadmap-modules.tsx → PlaceholderPage |
Planned | NEXT_PUBLIC_ENABLE_GROWTH |
| Work | components/notebook/roadmap-modules.tsx → PlaceholderPage |
Planned | NEXT_PUBLIC_ENABLE_WORK |
| More | components/notebook/roadmap-modules.tsx → PlaceholderPage |
Planned | NEXT_PUBLIC_ENABLE_MORE |
Unavailable modules render as notebook stubs and can be toggled on by setting
the related feature flag to true in the environment.
- Static analysis:
npm run lint - Unit tests:
npm test(runs Node's built-in test runner against FirestoreService and AuthProvider helpers) - Data access rules: client-side Firestore paths are validated via
lib/security/firestore-validation.ts
These checks align with the roadmap's Q1 stability goals and should be kept green before merging new work. Testing
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Lint code
npm run lintTest Status: 89/91 passing (97.8%)
See TESTING_CHECKLIST.md for testing strategy
and manual QA checklist. For automated UI testing, use /test-suite — see
TESTING_USER_MANUAL.md.
- Check ROADMAP.md for planned features
- Review ARCHITECTURE.md for design patterns
- Follow code style in DEVELOPMENT.md
- Ensure tests pass before submitting PR
- Update documentation for new features
This app handles sensitive recovery data.
All code changes MUST comply with these standards:
- Rate Limiting - All endpoints have IP + user-based limits with graceful 429s
- Input Validation - All inputs validated with schemas, type checks, length limits
- Secrets Management - No hardcoded keys; all secrets in env vars; nothing client-side
- OWASP Compliance - Follow OWASP Top 10; clear comments; no breaking changes
See docs/GLOBAL_SECURITY_STANDARDS.md for full requirements.
See docs/SECURITY.md for:
- Data classification (Red/Yellow/Green)
- Security layers (TLS, App Check, Auth, Rules)
- Privacy protections (GDPR, data export/deletion)
- Incident response procedures
Report security issues: jason@sonash.app (not via public GitHub Issues)
Update this README when:
- Project status or milestone progress changes significantly
- New major features are added or completed
- Tech stack changes (dependencies, frameworks)
- Documentation structure changes (new docs added/removed)
- Project structure changes (directory reorganization)
When working on this project:
- Read AI_WORKFLOW.md first for navigation guidance
- Check ROADMAP.md for current priorities and planned features
- Follow CLAUDE.md patterns (see CODE_PATTERNS.md for details)
- Run
npm run patterns:checkto verify compliance before committing - Update documentation when making changes that affect project status
- Use
npm run docs:update-readmeto sync status section from ROADMAP.md
| Version | Date | Changes |
|---|---|---|
| 2.0 | 2026-01-02 | Standardized structure per Phase 3 migration |
| 1.1 | 2026-01-01 | Added Claude Code infrastructure section |
| 1.0 | 2025-12 | Initial README with MVP features |
Major Milestones:
- v0.1 (December 2025) - MVP: Book cover, Today page, Journal system, Meetings directory
- v0.2 (January 2026) - Admin panel, Documentation standardization, Security hardening
Proprietary - All rights reserved
- Developer: Jason Bell
- Email: jason@sonash.app
- Repository: github.com/jasonmichaelbell78-creator/sonash-v0