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

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 →