A steeptech project

A coach that actually knows your training.

KOMputer connects to the platforms you already use and builds a real picture of your fitness. It knows your load, your fatigue, and your weak spots, and it tells you exactly what you should ride today, and why.

Data sources unified
Strava · Intervals.icu · Apple Health
Built in
~3 months of iteration
Powered by
Claude + custom MCP servers

The idea

One coach with the full picture.

Serious cyclists live across a scatter of apps. Power files and fitness curves in Intervals.icu. Outdoor rides, segments, and Relative Effort in Strava. Sleep, HRV, and readiness on the wrist. Each tells part of the story, but none of them tell the whole one, and none of them coach.

KOMputer closes that gap. Not generic plans, not guesswork. Tell it about a hard week or a sore knee and it adjusts, weighing your season goals, current fitness and fatigue, and today's biometrics into a clear call on the next ride.

Not another dashboard. A coach that reads the data so you don't have to.

The process

Built by exploring what the data could do.

KOMputer started with a question — what happens if you give a capable AI direct access to your training data? It took about a month of hands-on experimentation with Strava and Intervals.icu MCP servers to find the answer.

  1. 01

    Wire up the data

    The foundation was a pair of local MCP servers wired directly into the Claude desktop client. One for Strava, one for Intervals.icu — exposing rides, streams, fitness metrics, wellness, and segments as tools the model could actually call.

  2. 02

    Learn the model's range

    With live data on tap, the next weeks were about discovery — probing what Claude could infer from a power curve, how it read HR against Relative Effort, evaluating my training history, where it got recommendations wrong, and which questions produced genuinely useful coaching versus generic advice.

  3. 03

    Encode the athlete

    Every insight that held up got recorded: physiological benchmarks, the "diesel rider" profile, how readiness scores should be weighted, which metrics to trust and which to ignore. This became a living coaching brief and ultimately helped me spot the key differences between a generic assistant and one that knows this rider.

  4. 04

    Build outward from what worked

    From that base, the feature set grew organically: weather-gated ride selection, readiness-driven intensity gating, post-ride analysis feeding the next recommendation. Each capability earned its place by proving useful in real training, not because a roadmap called for it.

Under the hood

The stack.

Claude

The reasoning core. It interprets the data, applies the coaching logic, and produces the day's recommendation in plain language.

Reasoning engine

Custom MCP servers

Local Model Context Protocol servers for Strava and Intervals.icu that expose rides, streams, fitness metrics, and wellness as callable tools.

Data layer

Intervals.icu

Primary source for fitness metrics — CTL/ATL/TSB, power profile, and zone distribution on power-metered indoor rides.

Fitness metrics

Strava

The reliable source for outdoor rides — sport types, segments, and Relative Effort where no power meter exists.

Outdoor rides

Biometrics

Apple Health and Sleep++ as the authoritative readiness source: HRV, resting heart rate, and a daily readiness score that gates intensity decisions.

Readiness

Persistent memory

A living coaching brief encoding the athlete profile, benchmarks, and hard-won analysis rules so guidance stays consistent session to session.

Personalization
For developers

What's under the hood, technically

KOMputer is a small, focused app built on a handful of well-known, reputable services rather than one giant proprietary platform.

Next.js
The app itself is built with Next.js, a widely-used framework for building fast, modern web applications. It handles everything from the dashboard you see to the behind-the-scenes logic that talks to Strava, Intervals.icu, and Claude.
Vercel
KOMputer is hosted on Vercel, the same company that makes Next.js. Every update we ship is automatically deployed the moment it's pushed, no manual steps, no downtime, and served from a global network so the app loads quickly wherever you are.
Supabase
Your athlete profile, training preferences, and connected-account details are stored in a managed Postgres database on Supabase. Postgres is one of the most trusted, battle-tested databases in the industry; Supabase handles running and securing it so your data has a stable, reliable home.
Resend
KOMputer doesn't use passwords. When you sign in, a one-time "magic link" gets emailed to you through Resend, a service built specifically for reliable transactional email delivery. Click the link, you're in — nothing to remember, nothing to leak.
Upstash
To keep the app fast and available for everyone, sensitive features (like the public demo's chat) are protected by rate limiting powered by Upstash. Think of it as a bouncer that prevents any one visitor from overwhelming the system.
Anthropic Claude
The coaching conversation itself runs on Claude. Each response is grounded in a prompt built fresh from your real training load, recent rides, and local weather, not a script or a generic chatbot.
  • Your credentials are encrypted, not just stored. Strava tokens and Intervals.icu API keys are encrypted (AES-256-GCM, if you're curious) before they're saved, and only unlocked briefly on the server when a request actually needs them. They're never sent back to your browser in plain text.
  • Real data, not a black box. KOMputer pulls your actual fitness numbers from Intervals.icu and your real ride history from Strava, rather than estimating them. What you see in the dashboard is what's really there.
  • The public demo is truly synthetic. No sign-up, no real credentials, no live API calls — it's a safe way to see how the dashboard and coach behave before connecting your own accounts.

Core features

What it does day to day.

Daily ride recommendation

Weather-gated logic decides indoor vs. outdoor, factoring temperature, wind, and rain against real thresholds — then names the ride and the reason behind it.

Readiness-aware intensity

Reads HRV, resting heart rate, and readiness to gate how hard the day should be — calibrated to how this athlete actually recovers, not a generic template.

Post-ride analysis

Pulls streams after every ride, calls out what went well and what to sharpen, and feeds that read straight into the next recommendation.

Training-phase awareness

Knows the current block — sharpening, base, taper — and steers toward its priorities, like weekly VO2 work and disciplined Zone 2.

Workout suggestions

Recommends specific structured sessions matched to the day's goal and recent load, sourced to fit the training phase.

Data-truth guardrails

Knows which numbers to trust — power indoors, HR and effort outdoors — and refuses to fabricate metrics when a source comes up empty.

Ready to see it in action?

Questions or feedback? hello@steeptech.dev