"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 Started | December 2016 |
| Maintenance End | Late 2022 |
| Active Development | ~3 Years |
| Total Commits | 580 |
| Public Releases | 53 (v0.1.4 → v1.5.0) |
| Author Contributions | 554 direct commits |
Interface Gallery
A visual walk-through of the platform's features and user experience.

Master Dashboard - Analytics View
v1.2.0 Update

Compact Activity Telemetry
v1.2.0 Update

Data Drill-down Protocol
v1.2.0 Update

Companions Signal Feed
v1.2.0 Update

Athlete Connection Widget
v1.1.0 Update

Intersection Discovery UI
v1.1.0 Update

Distance Tracking Visualization
v1.1.0 Update

Annual Performance Records
v1.1.0 Update

Pace Conversion Utility
v0.23.0 Update

Synchronization Queue Monitor
v0.22.0 Update

Community Photo Stream
v0.22.0 Update

Equipment Telemetry
v0.22.0 Update

User Activity Dashboard
v0.21.0 Update

Segment Leaderboard Analysis
v0.21.0 Update

Global Activity Intersection
v0.21.0 Update

Flyby Intersection Map
v0.21.0 Update
System In Motion
A captured user session demonstrating the platform's core interaction patterns and technical performance.

Interface Demonstration
Original capture from the v0.1.5 development cycle
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.0The 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 
Compact Activity Log 
Detailed Statistics 
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.0Version 1.1.0 introduced "My Companions"—a significant feature providing deep analytics on your intersections with other athletes.

Athlete Connections 
Intersections Telemetry 
Distance Analysis 
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.0This update focused heavily on performance improvements for high-volume accounts and the introduction of the new Pace Conversion utility.

The new Pace Conversion utility and updated synchronization controls. v0.22.0
New Perspectives
Released: v0.22.0A 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 
Photo Stream 
Equipment Telemetry v0.21.0–v0.21.1
The Flyby Milestone
Released: v0.21.0Today 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 
Segment Analysis 
Recent Journal 
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.5A significant iteration focusing on administrative protocols, platform sustainability, and data integrity.
User ManagementAnalytics IntegrationData Management
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.
