106 lines
4.0 KiB
YAML
106 lines
4.0 KiB
YAML
# Nessa Project Facts
|
|
|
|
## Project Overview
|
|
- Type: "iOS fitness tracking application (Strava competitor)"
|
|
- Tech Stack: "Swift, SwiftUI, GRDB (local database), HealthKit"
|
|
- Location: "/home/mike/code/Nessa"
|
|
- Repository: "https://git.freno.me/Mike/Nessa.git"
|
|
- Target: "2,000 paying users = $10k MRR"
|
|
|
|
## Architecture
|
|
|
|
### Database
|
|
- ORM: "GRDB with migrations"
|
|
- Schema: "users, workouts, social features (profiles, follows, kudos, comments), segments"
|
|
- Migration pattern: "Incremental migrations with existence checks"
|
|
- DatabaseManager: "Centralized database access with read/write methods"
|
|
|
|
### Current Features
|
|
- Workout types: 11
|
|
- HealthKit integration: true
|
|
- Basic dashboard and authentication: true
|
|
- Social features: "profiles, follows, kudos, comments, activity feed"
|
|
- Segments with leaderboards and efforts: true
|
|
- Heart rate tracking: true
|
|
|
|
### Subscription Model (Planned)
|
|
- Free price: "$0"
|
|
- Free features: "Core features except route planning, AI features, offline maps"
|
|
- Plus price: "$4.99/mo"
|
|
- Plus features: "Route planning, offline maps, advanced segments, personal heatmaps"
|
|
- Pro price: "$9.99/mo"
|
|
- Pro features: "AI training plans, premium challenges, priority support, fitness tracking"
|
|
|
|
### Subscription Implementation
|
|
- Payment: "StoreKit 2 for iOS native subscriptions"
|
|
- Product IDs: "com.nessa.subscription.plus.monthly, com.nessa.subscription.pro.monthly, com.nessa.subscription.plus.yearly, com.nessa.subscription.pro.yearly"
|
|
- Feature Gating: "SubscriptionService with PremiumFeature enum"
|
|
- Backend: "Receipt validation endpoints, App Store Server Notifications webhook"
|
|
- Timeline: "4 weeks (6 phases)"
|
|
- Sub-issues: "FRE-108 through FRE-112"
|
|
|
|
## Completed Work (2026-03-10)
|
|
|
|
### StoreKit 2 Integration (FRE-108)
|
|
- Status: "Completed"
|
|
- Deliverables:
|
|
- ProductStore.swift: "Product fetching, caching, tier/period management"
|
|
- PurchaseManager.swift: "Transaction handling, restoration, secure storage"
|
|
- TransactionObserver.swift: "Real-time monitoring, entitlement tracking"
|
|
- SubscriptionView.swift: "Complete UI with tier/period selection"
|
|
- StoreKitConfiguration.storekit: "4 subscription products configured"
|
|
- Products configured:
|
|
- Plus Monthly: "$4.99"
|
|
- Pro Monthly: "$9.99"
|
|
- Plus Yearly: "$49.99 (17% savings)"
|
|
- Pro Yearly: "$99.99 (17% savings)"
|
|
- Integration points:
|
|
- NessaApp.swift: "TransactionObserver initialization"
|
|
- SettingsTabView: "Premium section with tier indicator"
|
|
- Pending transaction processing on app launch
|
|
|
|
## Feature Roadmap
|
|
|
|
### Phase 1 MVP Status
|
|
- Status: "Completed"
|
|
- Features: "Activity tracking + feed + kudos + comments, Profiles + follow system, Basic segments"
|
|
|
|
### Phase 2 Community Growth
|
|
- Issue: "FRE-92"
|
|
- Features: "Clubs system, Monthly challenges, 1v1 challenges, Share to social, Invite system"
|
|
- Timeline: "10 weeks"
|
|
- Sub-issues: "FRE-102 through FRE-107"
|
|
|
|
### Phase 3 Premium Features
|
|
- Features: "Route planning with turn-by-turn, AI training plans, Offline maps, Advanced analytics"
|
|
|
|
## Revenue Targets
|
|
- Month 1: "$500-1,000 MRR (100 paying users)"
|
|
- Month 3: "$2,500-5,000 MRR (500 paying users)"
|
|
- Month 6: "$5,000-10,000 MRR (1,000 paying users)"
|
|
- Year 1: "$10,000+ MRR (2,000 paying users)"
|
|
|
|
## Technical Debt and Considerations
|
|
- Subscription infrastructure: "Not yet implemented"
|
|
- Backend API: "Required for subscriptions (not yet built)"
|
|
- Architecture: "Local-first with GRDB (sync TBD)"
|
|
- Competitive goal: "Feature parity with Strava"
|
|
|
|
## Key Files
|
|
- User model: "Nessa/Models/User.swift"
|
|
- Database manager: "Nessa/Core/Database/DatabaseManager.swift"
|
|
- Subscription plan: "plans/2026-03-09-subscription-tiers-implementation.md"
|
|
- Community plan: "plans/2026-03-09-phase2-community-growth.md"
|
|
|
|
## Related Issues
|
|
- Strava parity: "FRE-73"
|
|
- Community growth: "FRE-92 (in_review)"
|
|
- Subscription tiers: "FRE-94 (in_review)"
|
|
- Subscription sub-issues: "FRE-108 to FRE-112"
|
|
- Community sub-issues: "FRE-102 to FRE-107"
|
|
|
|
## Access Metadata
|
|
- created: "2026-03-09"
|
|
- last_accessed: "2026-03-10T23:10:00Z"
|
|
- access_count: 2
|