Spicy Strava 🔥
Get roasted for your Strava activities. Because sometimes you need honest feedback about that "easy recovery run."
View on GitHub →What It Does
Spicy Strava is a native iOS app that connects to your Strava account and generates brutally honest roasts for your activities. Whether it's your pace, distance, elevation, stoppage time, or lack of kudos - nothing is safe from commentary.
Choose your spice level from Mild to 🌶️🌶️🌶️ and get feedback that ranges from gentle encouragement to savage roasts. The app creates "Activity Wrapped" style presentations with swipeable slides breaking down every aspect of your workout - with appropriately spicy commentary for each metric.
Key Features
- OAuth Integration: Secure Strava login flow
- Infinite Scroll Activity Feed: Browse all your activities with stats at a glance
- Customizable Roasts: Set different spice levels for different activity types (runs, rides, swims, hikes)
- Activity Wrapped: Full-screen swipeable slides for individual activities with stats breakdowns, stoppage time roasts, elevation commentary, social stats, and segment achievements
- Aggregate Wrapped: Weekly/Monthly/Yearly/All-Time performance summaries showing your best and worst across all activities
- Auto-Post to Strava: Optionally append roasts directly to your activity descriptions
- Share: Export roasts as images for Instagram stories
- Roast Caching: Roasts are saved per activity and spice level for consistency
Tech Stack
- SwiftUI: Native iOS interface with modern declarative UI
- Strava API: OAuth authentication and activity data integration
- URLSession: Custom networking layer
- @AppStorage: Persistent settings and user preferences
The Story
This project came from a core belief: you can take the things you do very seriously (like running - I take it seriously!) but the minute you start taking yourself seriously, you've lost the plot. Spicy Strava is my way to fight back against taking myself too seriously with my activities - running, riding, boating, all of it.
I built this as my first real SwiftUI project, diving into iOS development while simultaneously getting roasted for my own running stats. The app uses a mock roast service currently, but it's architected to easily swap in real AI (OpenAI, Anthropic, or Together.ai) when I decide my activities deserve truly personalized savage commentary.
Technical Highlights
The architecture separates concerns cleanly: StravaService handles all API integration, MockRoastService generates the roasts based on activity stats and chosen spice level, and RoastCache manages persistence using composite keys (activityId + spiceLevel). This makes it easy to swap the mock service for real AI without touching the rest of the codebase.
The Activity Wrapped slides were particularly fun to build - implementing swipeable full-screen views that progressively reveal stats with appropriately timed roasts. Each slide focuses on a different aspect of your workout: basic stats, pace analysis, stoppage time, elevation, social engagement, segments, and a final verdict.
What's Next
Future plans include real AI integration for truly personalized roasts, weekly/monthly email digests of your shame, leaderboards for worst pace and most stopped time, friend comparisons (because misery loves company), and support for more activity types beyond runs and rides.
The code is open source on GitHub if you want to fork it and roast your own activities. Just don't blame me when it accurately points out that your "tempo run" was slower than most people's easy pace.
View Project on GitHub →