New: Functional Fitness Activity Type
- New activity type for gym and lifting workouts — select "Functional Fitness" when creating an activity
- Tailored fuel recommendations tuned for strength training with its own intensity scale
- Unique icon, background image, and color scheme
- Available standalone or as a leg in bricks and triathlons
New: Swipe Navigation for Activity Creation
- All activity creation screens are now swipeable — tap "Next" to advance, then swipe freely between screens you've visited
- Input is validated before you can swipe forward, so nothing gets skipped
- Same swipeable flow when building linked activities (bricks and triathlons)
- Pages follow your finger as you drag, with snap animation on release
- Swipe between sub-activities when editing linked activities (bricks and triathlons) without leaving the edit screen
New: Swipe Navigation for Onboarding
- Onboarding screens are now swipeable too
- If you close the app mid-setup, Saturday remembers where you left off and picks up right there
- Pages follow your finger as you drag, matching the activity creation flow
New: Haptic Feedback
- Tactile feedback throughout the app — light taps for buttons, stronger pulses for important moments
- Toggle haptics on or off in Preferences
New: Blur Instead of Block for Expired Users
- If your subscription expires, you can still use the full app — your calculated numbers (fluid, sodium, carbs) are blurred instead of locked
- Tap any blurred number to see a friendly prompt with context-specific messaging
- Create activities, edit products, copy activities, and change dates while expired
New: Limited Free Profile Changes When Expired
- Expired users get 3 free profile changes before being prompted to subscribe
- Each change shows a confirmation ("This will use change X of 3")
- Reverting to your pre-expiration value doesn't count as a change
New: Undo Throughout the App
- Edit an activity and change your mind? "Activity updated" toast with an Undo button restores the original
- Every profile setting now shows a toast with Undo after saving
- Delete a gear item? "Deleted [name]!" appears with Undo to bring it back
- Delete an activity from the list or detail screen? An undo toast brings it right back
- Delete a custom product? Undo restores it from both the select and edit screens
- Confirmation dialogs now say "You can undo this action" instead of "This action cannot be undone"
New: Toast Notifications
- New overlay-based toasts replace pop-up messages across the app
- Text-only toasts dismiss after 4 seconds; toasts with action buttons last 5 seconds
- Toasts persist when you navigate between screens so you don't miss them
New: Complete Incomplete Activities
- Long-press an incomplete activity and tap "Complete" to finish it
- For linked activities, Saturday automatically resumes on the first incomplete leg
New: Partial Save for Linked Activities
- Editing a brick or triathlon? You can now save partway through without finishing every leg
- Saturday writes your current progress and tells you how many legs remain ("Bike saved — 1 leg to go!")
New: Redesigned Review Prompt
- After you've been using Saturday for a while (14+ days, 5+ sign-ins, 6+ activities), you may see a "Got a minute?" dialog
- Three options: Rate Saturday (opens your app store), Share feedback (opens a quick survey), or Remind me later
- A "Don't ask me again" checkbox if you'd rather not be asked
- Closing the dialog defers the prompt for 40 days
New: Manage Your Subscription on the Web
- View your current plan and expiry at saturdaymorning.fit
- Switch between monthly and annual plans — upgrades take effect immediately with prorated credit, downgrades apply at your next renewal
- Email links take you directly to the management page
New: Deep Links from the Web
- 19 new routes connect the website to specific screens in the app — redeem a code with it pre-filled, manage your subscription, jump to any settings page, and more
- Links work even if Saturday hasn't finished loading yet
Improved: Number Selector
- Number pickers redesigned as blur dialogs that scroll to your current selection with haptic feedback
Improved: Intensity Picker
- Intensity dropdown now sizes to its content instead of using a fixed height
- Sweat level labels show full descriptive names ("Moderately Light", "Moderately Heavy")
Improved: Personal Bests
- Personal bests page only appears for sports that support PB input (currently swimming)
Improved: TrainingPeaks
- Specific error messages for authentication failures vs network errors
- Sync count shown after import ("Synced 3 workouts")
- 3 free uploads available when your subscription is expired
Improved: Keyboard Behavior
- Tapping outside a text field now dismisses the keyboard across 12+ screens
- Keyboard dismisses automatically when advancing between onboarding screens
Improved: Activity Sorting
- Same-day activities sort by most recently edited first
Improved: Subscribe Button
- "Subscribe" renamed to "View Plans" — appears after your first day with an activity, and changes style when your trial has 3 days or fewer remaining
Improved: Custom Product Storage
- Custom products moved to more reliable individual storage for better consistency
Improved: Race Mode for Linked Activities
- Race/Event mode now applies to bricks and triathlons, not just single activities
Improved: Linked Activity Details
- Profile summary for linked activities now shows full details for each leg
Improved: Lifetime Purchases
- Buying a lifetime membership now automatically cancels any existing recurring subscription
Improved: Subscription Status Display
- Better status messaging for billing-hold states including grace period, on hold, and paused
Improved: Redesigned Prepare, Consume, and Activity Detail Screens
- New header card showing sweat level, duration, and intensity in a clean layout
- Dark gradient overlay on Consume and Activity Detail backgrounds for better readability
- Updated typography with Bitter and Poppins fonts and thermal sweat-level icons
- Refreshed color palette with navy and slate tones
- "View plans" subscription prompt now appears on the Prepare screen for non-subscribers
Improved: Scrollable Dialogs
- Dialogs with long content now show a visible scrollbar with subtle fade at edges
- Titles and action buttons stay fixed above and below the scrollable area
- Buttons expand to full width for easier tapping
Improved: Password Management
- Inline validation hints appear as you type — character count and match status update in real-time
- Password fields clear and a success toast shows after a successful password change
Improved: Sip of the Day
- Swipe-to-dismiss now shows a red background with trash icon for clearer intent
Improved: Activity Creation Grid
- When only one activity type exists, it appears centered in the grid instead of bottom-left
Fixed
- Fixed home screen jump-scrolling caused by content rebuilding when data changes
- Fixed Skip button not being tappable (it was covered by other elements)
- Fixed "View Plans" button not updating its style on background screens
- Fixed thermal stress level not being saved when editing an activity
- Fixed crashes in gear and tactics screens for test builds
- Create activity button on home screen is no longer blocked for expired users
- Activity copy now clears expired-related flags so copies start fresh
- Fixed invisible intensity level bars that blended into white dialog backgrounds
- Removed outdated "New" callout from Member Hub in the navigation menu
Backend
- Error tracking now reports to Crashlytics for faster issue detection
- Automated health check monitors data integrity every 4 hours
- Apple webhook signatures are now cryptographically verified
- Large codebase cleanup removing dead code and unused assets
- Dependency updates