A native iOS app for the 75 Hard mental toughness program. Track your daily tasks, stay honest, and complete all 75 days — no exceptions.
Phase 1 — Offline Core (Current)
- Daily Checklist — See all 6 tasks the moment you open the app. Check them off throughout the day.
- 75 Hard Defaults — Two 45-min workouts (one outdoor), diet adherence, 1 gallon water, 10 pages reading, progress photo.
- Customizable Targets — Adjust water amount, page count, and task labels to fit your needs.
- Workout Stopwatch — Full-screen timer with indoor/outdoor toggle, workout type, and duration tracking.
- Reading Log — Dedicated tab with page-count grid and reading history.
- Day Progress — Circular progress ring and 75-bar strip showing completed vs. remaining days.
- Soft Reset — If you miss a day, the app lets you decide: restart from Day 01 or dismiss. No auto-resets.
- Offline First — Everything works without internet. Data is stored locally via SwiftData.
- Minimalist Design — Monochrome, distraction-free interface with sharp corners, hairline dividers, and haptic feedback.
Coming Soon
- Progress Photos — In-app camera capture and 75-photo gallery (Phase 3)
- Calendar History — Day-by-day calendar view of completed and missed days (Phase 2)
- Smart Reminders — Adaptive push notifications (Phase 4)
- Cross-Device Sync — Sign in with Apple and sync via Supabase (Phase 2)
| Layer | Technology |
|---|---|
| Language | Swift 6 |
| UI | SwiftUI |
| Persistence | SwiftData (@Model, @Query, ModelContainer) |
| Architecture | MVVM + Service Layer (@Observable) |
| Backend (planned) | Supabase (Auth, Postgres, Storage) |
| Notifications (planned) | UserNotifications |
| Testing | Swift Testing + XCTest |
Quanta/
├── Models/
│ ├── Schema/ # SwiftData models + VersionedSchema migration plan
│ └── Types/ # TaskType enum
├── Services/
│ ├── DayID.swift # Timezone-safe day ID generation
│ ├── DayService.swift # Day records, task toggling, workout completion
│ ├── DayBoundaryService.swift # Midnight detection, fail screen triggers
│ └── TaskConfigService.swift # Default task configuration factory
├── Features/
│ ├── Today/ # Main checklist + progress ring + day strip
│ ├── Reading/ # Reading log with page grid
│ ├── Stopwatch/ # Full-screen workout timer
│ ├── Settings/ # Task label/target customization
│ ├── Onboarding/ # First-launch "75 days. No exceptions." screen
│ ├── Fail/ # Missed-day soft reset modal
│ └── Shell/ # Main tab shell + overlays
├── DesignSystem/
│ ├── Theme.swift # Monochrome color tokens
│ ├── Typography.swift # Display, Text, Mono type scales
│ └── Components/ # SharpButton, HairlineDivider
└── QuantaTests/ # Unit tests
Key patterns:
@ObservableViewModels for business logic@MainActorServices for data operations- SwiftData
@Queryfor reactive view updates @AppStoragefor simple user preferencesVersionedSchemawithMigrationPlanfor safe schema evolution- Timezone-safe
DayIDgeneration (YYYY-MM-DDin user's local timezone)
- Xcode 16+
- iOS 17.0+ deployment target
- Swift 6
-
Clone the repository:
git clone https://github.com/anomalyco/quanta.git cd quanta -
Open the project in Xcode:
-
Select the Quanta scheme and run on a simulator or device.
No third-party dependencies are required for Phase 1. Supabase SDK will be added in Phase 2.
xcodebuild test -scheme Quanta -destination 'platform=iOS Simulator,name=iPhone 16'| Phase | Focus | Status |
|---|---|---|
| 1. Foundation | SwiftData models, daily checklist, task config, offline core | ✅ Complete |
| 2. Auth & Sync | Supabase auth, cross-device sync, calendar history | 📋 Planned |
| 3. Progress Photos | In-app camera, 75-photo gallery, cloud upload | 📋 Planned |
| 4. Notifications & Polish | Adaptive reminders, App Store preparation | 📋 Planned |
Private — All rights reserved.