A web app that transforms your Strava data into visual progress tracking. Set annual goals, watch your cumulative progress climb against your target "desire line."
- Goal Visualization - Set distance targets, track progress in real-time
- Strava Integration - Automatic activity import via webhooks
- Multi-Sport Support - Cycling, running, yoga, and more
- Modern Stack - React frontend, Go/Python backend, Google Cloud Run
# Complete local setup
./scripts/ops/setup/setup-local.sh
# Or manually:
uv sync
cd packages/dispatcher && go mod download
just setup-secretsuv- Python package manager- Go (version in
go.mod) - Pants - Build system
- just - Task runner
- Docker, Terraform, Google Cloud SDK
We use just as our task runner. Commands default to fast native tools (uv, go, npm) but can optionally use Pants.
just test # Run all tests (native tools)
just lint # Lint all code (native tools)
just web-dev # Start web dev server
just --list # List all available commands
# Use Pants for specific commands
just py-test --pants
just go-test --pantsFor full environment orchestration (Docker):
just start-backend # Backend pipeline with PubSub emulator
just start-frontend # Frontend + API gateway + Postgrespackages/
├── web/ # React frontend
├── apigateway/ # Go REST API
├── dispatcher/ # Go webhook receiver
├── stravapipe/ # Python event processors (bq-inserter, postgres-writer, deletion-service)
└── shared/ # Go shared library (logging, OTel, rate limiting)
schemas/
├── proto/ # Cross-language type definitions
├── database/ # PostgreSQL migrations
└── bigquery/ # BigQuery table schemas
See packages/README.md for detailed descriptions and a data flow diagram.
Data Flow:
- Activities: Strava webhook → dispatcher → Pub/Sub → bq-inserter + postgres-writer → BigQuery/PostgreSQL → apigateway → web
- Deauth: Strava webhook → dispatcher → Pub/Sub → deletion-service → deletes from PostgreSQL, BigQuery, Firestore
- Bootstrap Guide - Complete environment setup
- Strava Webhook - OAuth2 + webhook configuration (required!)
- Deployment Guide - Cloud deployment
- All Guides
This project is in active development. Contributions welcome!