PREVIEW_MODE //Draft Preview: This website is currently under development. Content and features are for preview purposes only and are subject to change.

Advanced Strava Analytics
Sunsetted

Strive Club

A tool for cyclists to analyze Strava performance data (past pet project).
53
Total Releases
v0.1.4 to v1.5.0
580
Total Commits
Historical Log
2016 - 2020
Active Cycle
3 yrs 11 mos
Strive Club Home Page Archive
Project Home Interface // 2019 Archival Capture

"We know that you are cool, but... you could do more. Strive!"

Vision

Strive was built for competitive Strava athletes—cyclists and runners who wanted to go beyond the basics. It connected to your history to provide a deep set of analytics and competitive insights that didn't exist anywhere else.

Community

It wasn't just about the data; it was about the people. Built for those who chase records and track rivals, Strive helped athletes understand the full competitive landscape of their local roads.

The Objective

The project was born from a personal need to answer the questions Strava left open: Which segments am I close to taking? Who are my real rivals on these specific roads? How has my performance changed year-over-year?

Note: This project is no longer active. Strive was officially sunsetted in late 2020 as I shifted my focus to new engineering challenges and professional growth.

Key Features

A breakdown of the specialized analytics and competitive tools developed to extend the core experience.

The Dashboard

Your personal athletic command center. Shows total distance with fun equivalents, breaks down activity types, and provides year-by-year progress charts.

My Activities

A powerful search and filter tool for your entire history. Includes advanced sliders for distance, speed, elevation, cadence, and kudos.

Segments Dossier

A searchable list of every Strava segment you've ever crossed, with dedicated detail pages, leaderboards, and personal attempt history.

My KOMs

Your personal hall of fame. Tracks every segment where you hold the record and shows who is gaining on you.

Rivals Intelligence

Identifies athletes who appear most frequently on your leaderboards—knowing exactly who your local competition is.

The Blacklist

A deeper view of the competitive landscape, showing which athletes are active on your specific segments and routes.

My Companions

Social discovery that detects athletes who were on the same road as you without you knowing it, using Flyby data.

My Bikes

Detailed gear performance breakdown. Tracks mileage and elevation for every bike in your garage with specialized commute filters.

Photo Stream

A visual narrative of your journey, displaying the latest photos from your activities in a clean, curated grid.

Sync Engine

The technical heart of the platform, managing complex data synchronization with Strava in real-time.

The Tech Stack

Building a platform of this scale required a robust, modern foundation.

Backend

Built using Node.js and Express.js, the system used a layered architecture to manage complex data flows and MongoDB for high-flexibility storage.

Frontend

The interface was a modular single-page application built with AngularJS and Bootstrap, focusing on real-time responsiveness and clear data visualization.

Key Decisions

  • Custom DB migration framework
  • Docker-based deployment pipeline
  • Advanced API rate-limit caching
  • Server-side rendering for SEO integrity

Project Metrics

The lifecycle of the project from the first commit to the final stable release.

Project StartedDecember 2016
Maintenance EndLate 2022
Active Development~3 Years
Total Commits580
Public Releases53 (v0.1.4 → v1.5.0)
Author Contributions554 direct commits
"The project evolved through over 50 versions, maintaining stability and performance for a dedicated community of athletes for several years."

Interface Gallery

A visual walk-through of the platform's features and user experience.

Master Dashboard - Analytics View

Master Dashboard - Analytics View

v1.2.0 Update

Compact Activity Telemetry

Compact Activity Telemetry

v1.2.0 Update

Data Drill-down Protocol

Data Drill-down Protocol

v1.2.0 Update

Companions Signal Feed

Companions Signal Feed

v1.2.0 Update

Athlete Connection Widget

Athlete Connection Widget

v1.1.0 Update

Intersection Discovery UI

Intersection Discovery UI

v1.1.0 Update

Distance Tracking Visualization

Distance Tracking Visualization

v1.1.0 Update

Annual Performance Records

Annual Performance Records

v1.1.0 Update

Pace Conversion Utility

Pace Conversion Utility

v0.23.0 Update

Synchronization Queue Monitor

Synchronization Queue Monitor

v0.22.0 Update

Community Photo Stream

Community Photo Stream

v0.22.0 Update

Equipment Telemetry

Equipment Telemetry

v0.22.0 Update

User Activity Dashboard

User Activity Dashboard

v0.21.0 Update

Segment Leaderboard Analysis

Segment Leaderboard Analysis

v0.21.0 Update

Global Activity Intersection

Global Activity Intersection

v0.21.0 Update

Flyby Intersection Map

Flyby Intersection Map

v0.21.0 Update

Navigate

System In Motion

A captured user session demonstrating the platform's core interaction patterns and technical performance.

Strive Club Pro UI Showcase

Interface Demonstration

Original capture from the v0.1.5 development cycle

Optimized Playback

Development Timeline

The story of the project's evolution, from early prototypes to the final release.

  • v1.5.0

    Final Release. Mobile compatibility for treadmill chart, rate limiting fix in sync, UI improvements, memory limit 450MB → 900MB, Sign Up CTA repositioned, bike list fetched from DB.

  • v1.4.1

    Sync error emails, authorization error handling during sync with UI display, sitemap split into static/segments, ads fixes.

  • v1.4.0

    Treadmill Pace Conversion Chart feature page. GitHub Actions workflow for automated build & deploy.

  • v1.3.2

    Fix for gear display on activities page.

  • v1.3.1

    Last login date tracked. Registration auto-sync on first login only. Additional sync guards.

  • v1.3.0

    Email notifications — users configure alerts; confirmation emails; prototype through to full implementation. Account deletion. Strava OAuth token refresh. passport-strava replaced with custom passport-custom auth. Activities page reset button. Email layout improvements.

  • v1.2.3

    Strava API v3 library upgraded, OAuth scopes updated, config rewritten to Promises.

  • v1.2.1–v1.2.2

    Performance fix for large dataset queries.

  • v1.2.0

    Statistical Insights

    Released: v1.2.0

    The headline feature of version 1.2.0 was the Year Statistics Chart, allowing athletes to visualize their consistency over 365-day rolling periods.

    Full Dashboard View
    Full Dashboard View
    Compact Activity Log
    Compact Activity Log
    Detailed Statistics
    Detailed Statistics
    Companions Page
    Companions Page
  • v1.1.1

    MongoDB connection pool increased to 20, Google AdSense ads.txt, activity count fix.

  • v1.1.0

    The Social Update

    Released: v1.1.0

    Version 1.1.0 introduced "My Companions"—a significant feature providing deep analytics on your intersections with other athletes.

    Athlete Connections
    Athlete Connections
    Intersections Telemetry
    Intersections Telemetry
    Distance Analysis
    Distance Analysis
    Yearly Progress
    Yearly Progress
  • v0.24.2–v0.24.3

    Invalid token handling (all jobs cancelled on revoked token). Strava Flybys integration fix.

  • v0.23.0 / v0.24.0

    Performance Foundations

    Released: v0.23.0

    This update focused heavily on performance improvements for high-volume accounts and the introduction of the new Pace Conversion utility.

    Pace conversion and UI updates
    The new Pace Conversion utility and updated synchronization controls.
  • v0.22.0

    New Perspectives

    Released: v0.22.0

    A major feature release introducing the Photo Stream, Synchronization transparency, and the dedicated "My Bikes" dashboard.

    Photo Stream

    A visual narrative of your activities, focusing on imagery and location over numbers.

    Gear Tracking

    Deep performance stats for every bike in your garage, including average speeds and elevation gains.

    Synchronization Status
    Synchronization Status
    Photo Stream
    Photo Stream
    Equipment Telemetry
    Equipment Telemetry
  • v0.21.0–v0.21.1

    The Flyby Milestone

    Released: v0.21.0

    Today we have an interesting update for you! We've worked on new integration with Strava Labs Flyby and now you can see intersections with other athletes during your training.

    Flyby shows activities of your companions and other athletes who passed by you on the trail. It's a powerful way to connect with the local community.

    Activities View
    Activities View
    Segment Analysis
    Segment Analysis
    Recent Journal
    Recent Journal
    Flyby Integration
    Flyby Integration
  • v0.20.0–v0.20.1

    Segment efforts chart and filtering/sorting activities by segments. Top-10/Top-20 leaderboard views, DB backup/restore scripts, registration lock capability, API cache fix, distance leaderboard sort fix.

  • v0.19.0–v0.19.1

    Sync V2 — complete rewrite of the sync engine (V1 removed). Social share buttons directive. FAQs page. Strava brand guideline updates.

  • v0.18.0

    Segment pages extended with sign-up CTA, ads, SPA rendering for complex URL fragments, public segments added to sitemap.

  • v0.17.0

    Public Segments page, Discovered Segments page, per-segment detail page with Disqus comments and ads, job filtering improvements.

  • v0.16.0–v0.16.1

    Rivals page implemented. Major leaderboard refactor — data consolidated into Segment model. Adapted to Strava API breaking change (athlete ID removed from leaderboard responses). Docker improvements.

  • v0.15.0

    Activities page UI improvements, Garmin icons, Strava brand guidelines compliance, Docker support added.

  • v0.14.1–v0.14.3

    KOMs page implemented. Dashboard page with ibox directive and charts. Logs viewer UI, cache management UI (public/private split), Agenda job manager UI, Blacklist management page, Useful Links page, auto-sync on registration, Google Forms contact integration, SEO improvements.

  • v0.12.0

    Contact Us page, empty dashboard placeholder, extended API caching, sync fixes, home page redesign, Telegram added to social links.

  • v0.9.0–v0.10.0

    PhantomJS polyfill fixes, route resolution error handling, escaped fragment SEO handling, activities page bug fixes.

  • v0.8.0

    API response caching (5 min via apicache), MongoDB session store, sync button moved to navbar, log file download for admins, PM2 config improvements.

  • v0.7.0–v0.7.1

    Home page content and device mockup directive, loading spinner.

  • v0.6.3–v0.6.5

    Logentries cloud logging, Strava-only auth (basic login removed), improved bot detection covering icons, robots.txt, and sitemap.xml.

  • v0.6.0–v0.6.2

    Recent photos in footer, angular-spa-auth v0.6.0, noscript handling, hotfixes.

  • v0.5.0

    Extended activity filtering with sliders, distance leaderboard, scroll-to-top, admin login sessions screen.

  • v0.4.0–v0.4.2

    PhantomJS-based HTML snapshots for SPA SEO. HTML5 pushState routing.専門家 detection — crawlers served pre-rendered snapshots, real users got the SPA.

  • v0.3.1

    Dynamic robots.txt and sitemap.xml generation.

  • v0.3.0

    Time information added to segment tables, SEO metadata, new analytics events.

  • v0.1.5

    Core Expansion

    Released: v0.1.5

    A significant iteration focusing on administrative protocols, platform sustainability, and data integrity.

    User Management
    Analytics Integration
    Data Management
    Strive Club Pro UI Showcase v0.1.5
    Interface session capture from the v0.1.5 update.
  • v0.1.4

    The entire initial platform built from scratch over 7 months (Dec 2016 – Jul 2017): Strava OAuth authentication, activity sync engine, segment processing, leaderboard model, KOM analysis, results page, activities page, user profile with clubs and gears, admin role support, rate limit tracking dashboard, API calls counter, login sessions, Sync button, /healthcheck endpoint, Sentry error tracking, Log4js logging, Bitbucket Pipelines CI/CD, Docker + PM2 deployment, Gulp build pipeline, angular-spa-auth, ngStorage, Toastr notifications, Unify admin template. Private segment filtering. Google Search Console integration.

Project Sunsetted // October 2020