- Full Telegram coaching conversation and athlete web overview
- Personal explanations using plan, training and recovery data
- Daily guidance, optional check-ins and confirmed memories
- Plan discussions and proposals — every decision stays with the athlete
Build an AI cycling coach that athletes can trust.
Performance is a pre-build product for adult competitive cyclists in Germany. The athlete uses Telegram to talk to the AI Coach. The system uses the athlete's training plan, completed training, recovery data, and confirmed context.
- Telegram is the main coaching interface.
- The web overview shows the plan, recent training, progress, and account settings.
- An optional assigned coach sees selected data in read-only mode.
Explore the project.
This page is the full overview: goal, scope, tiers, boundary, architecture and delivery. For deeper detail, go to the prototype and the build specification.
Where this product is going.
Performance is a direct-to-consumer subscription: serious cyclists in Germany pay monthly to talk to an AI coach that understands their plan, their training and their recovery. The category is a conversation, not a tracker.
The problem
Real 1:1 coaching costs several hundred euros a month. Trackers like TrainingPeaks and WHOOP tell you what happened but don't talk to you. Between those two sits a conversational AI coach at a fraction of the cost.
The market
Germany's cycling federation reports roughly 140,000 licensed racing members — the ceiling for "serious, structured-training cyclists". A small, specific audience: trust and relevance matter more than mass reach.
The offer
A direct-to-consumer subscription with two athlete-owned tiers. The athlete owns the account and approves every change.
What the pilot must prove
The pilot proves the concept. It must show that athletes like the product, use it regularly and stay subscribed. It must also show that the product can be profitable. Only after that proof do we invest in the next version.
The trajectory
- Build: 4–6 weeks from confirmed start
- Pilot: 10–20 German athletes prove the concept
- Prove: users like it, it is sticky, it is profitable
- Improve: fine-tune the model and use user data to improve the product
- v2: launch the next version with better features
The athlete is the primary user.
The product supports athlete-led training decisions. A coach can view selected information, but the athlete owns the account and approves changes.
Athlete
- Adult professional, elite, or serious performance cyclist in Germany
- Uses TrainingPeaks and WHOOP
- Uses Telegram for daily interaction
- Owns the account and approves writes
Professional coach
- Optional existing coach relationship
- One active assignment in v1
- Sees selected athlete data only
- Read-only access. No private AI conversation.
Operator
- Creates coach accounts
- Assigns a coach to an athlete
- Supports operations and release controls
- Does not replace athlete approval
AI-supported self-coaching — not autonomous control.
| AI-supported self-coaching (what we build) | Autonomous AI coach (what we don't build) |
|---|---|
| Athlete owns the decision | AI is expected to own the decision |
| AI explains and suggests | AI prescribes |
| AI drafts possible plan changes | AI changes the plan automatically |
| Athlete can question, refine, accept or reject | Athlete is expected to follow |
| Engagement through conversation and insight | Engagement through delegated control |
Marketing can say "Your AI coach." The product boundary underneath stays fixed: AI-supported self-coaching for nonmedical cycling performance. Every feature decision is filtered through this line.
Two ways to use the same athlete-first product.
Both tiers are owned by the athlete. The difference is whether one existing professional coach gets a limited, read-only overview.
- Everything in Self-Coaching AI
- One existing professional coach can be connected
- Athlete confirms or revokes the connection at any time
- Coach gets a selected read-only overview — never private AI conversations, never edit rights
One product across four surfaces.
The work combines a Telegram conversation, a small web product, data integrations, and a controlled AI runtime.
Athlete product
- Self-registration, secure-link login, adult confirmation, and session security
- Stripe checkout and billing portal with two entitlements
- Verified Telegram binding, private chats, four public commands, and inline buttons
- Web overview for today, plan, recent training, progress, and account settings
Training and recovery
- TrainingPeaks calendar and completed-workout intake
- Pasted text and CSV plan import
- WHOOP v2 sleep and recovery data
- Check-ins, reminders, and correction history
AI and memory
- Open conversation with server-scoped tools
- Recent context, rolling summary, and confirmed memories
- Deterministic evidence objects for numeric claims
- Structured output, validation, safety policy, and degraded responses
Plans and coach access
- Immutable plan versions and conversational plan drafts
- AI proposals require explicit athlete approval
- One assigned coach with selected read-only visibility
- Web-only coach AI assistant over the same read-only data
Mental performance signal
- Daily job extracts mood, motivation, and confidence evidence from conversation
- Live-by-default Mental Readiness trend
- Athlete can correct or dismiss each entry
- Separate consent purpose and DPIA before release
Governance and operations
- AI disclosure, consent records, audit trail, export, and deletion
- Retention settings, backups, and incident process
- Durable jobs, provider reconciliation, and observability
- Separate development, staging, and production environments
Not "maybe later" — deliberately out, so v1 stays sharp.
These are excluded on purpose so the effort concentrates on the athlete product and AI quality first.
Coach ecosystem
- Coach self-registration, discovery and matching
- Organizations, invitations, team administration, seat billing
- Multi-coach relationships
- Coach-side plan editing and proposal approval
- Coach messaging/inbox
- Advanced analytics, custom dashboards, automated flags
Product surface
- Medical or clinical functions
- Nutrition and meal planning
- Marketplace / coach matching
- Automatic plan modification (no autonomous control)
- Automatic extraction beyond the Mental Readiness signal
- General personality profiling or typing
- Native mobile applications
Data, providers & infrastructure
- Providers beyond TrainingPeaks and WHOOP
- PDF parsing, image analysis, voice transcription
- Web search and weather
- Fine-tuning on customer data
- Vector database, knowledge graph
- Kafka, Kubernetes, per-athlete models
The application must keep authority visible.
Conversation pipeline
- Authenticate the athlete and Telegram binding.
- Run the safety and boundary check.
- Select the workflow and bounded context.
- Run authorized read or draft tools.
- Call the approved model route.
- Validate schema, evidence, and safety.
Coach access flow
- Operator assigns an existing coach.
- Athlete confirms the assignment.
- Application creates a privacy-filtered projection.
- Coach reads the selected data.
- Athlete can revoke access at any time.
Three surfaces. Three clear jobs.
The athlete needs a quick daily view. The AI conversation supports decisions. The coach view shows selected shared data. These examples show the information hierarchy, not final visual specifications.
Good morning, Anna
Anna · training overview
Selected shared dataThe athlete can revoke access at any time.
The difficult work is in control, evidence, and reliability.
The product is not a general chatbot. The application must control what the AI can see, what it can do, and what the user can trust.
Send compact evidence objects with IDs, freshness, and deterministic values. Validate every cited fact. Do not let the model become the source of truth for numbers.
Allow the AI to explain and draft. Require athlete confirmation for plan changes, memory writes, and other state changes. Reject actions outside module authority.
TrainingPeaks access and its partner contract are not yet granted. WHOOP needs webhook handling, API refetch, reconciliation, freshness checks, and production approval.
Enforce athlete ownership and coach sharing rules on every read. Handle consent, export, deletion, retention, Mental Readiness evidence, and the medical boundary.
Use a durable PostgreSQL-backed job queue. Make syncs idempotent. Recover from missed webhooks. Do not lose messages or apply partial authoritative changes.
Deliver a reliable system for a controlled 20-athlete pilot. Measure latency, availability, projection freshness, backup restore, cost limits, and degraded behavior.
One application with clear internal modules.
Deploy in Scaleway Paris (fr-par) to support EU data residency. Use one Next.js and TypeScript application, one PostgreSQL database, one durable worker, and one AI route.
Athlete browser -----------+
Coach browser -------------+
|
Telegram webhook ----------+--> Next.js application and API
| |
Stripe webhooks -----------+ +--> PostgreSQL state and job queue
+--> durable worker
Activity and recovery APIs ---------->+--> EU object storage
+--> AI gateway
|
+--> Scaleway Generative APIs, Paris | Component | V1 implementation | Purpose |
|---|---|---|
| Application | One containerized DEV1-L instance | Web, API routes, auth, billing, product logic |
| Database | DB-DEV-S Managed PostgreSQL | System state, evidence, and job queue |
| Worker | Supervised process on the same instance | Sync, reconciliation, AI jobs, and projections |
| Storage | Standard Multi-AZ object storage | Plan inputs, approved raw objects, exports, and backups |
| AI | One approved Paris model route | Conversation, planning, recovery, and safety workflows |
| Edge and secrets | Edge Starter, WAF, TLS, Secret Manager | Public access and protected credentials |
- Use one instance for the pilot. Add nodes or failover after measured need.
- Keep development, staging, and production projects, credentials, databases, buckets, secrets, Stripe modes, and AI keys separate.
- Use synthetic or sanitized fixtures in local development. Never use production data.
Five integrations define the first release.
| System | Use | V1 rule |
|---|---|---|
| TrainingPeaks | Planned workouts, calendar, and completed activities | Mandatory. Read-only. No write-back. Approved commercial access and the partner endpoint contract are required. |
| WHOOP API v2 | Sleep and recovery | Mandatory. OAuth 2.0. Use webhook and API reconciliation. Production use above the 10-member development limit requires approval. |
| Telegram Bot API | Private athlete conversation | Private chats only. Verify the webhook secret. Deduplicate update_id before acknowledgement. |
| Stripe | Checkout, billing portal, and entitlement | Use Stripe-hosted pages and signed raw-body webhooks. Card data does not enter the application. |
| Scaleway Generative APIs | LLM route for all product domains | Paris route. Compare Gemma 4 and Qwen 3.6 on a fixed German corpus. Select one route before real-athlete use. |
Ready-to-Start gates
- TrainingPeaks access, partner documentation, credentials, and staging smoke test
- WHOOP production approval or an equivalent approved route
- Fixed German model benchmark and signed model-route decision
Measured before pilot
- Interactive AI latency
- Projection freshness and provider sync time
- Backup restore, rate limits, and degraded responses
Build target: 4 to 6 weeks from the confirmed start date.
The first release supports a controlled pilot. The Technical PRD defines the acceptance journeys; it is the current plan, not a fixed contract.
Product works
- Athlete can register, subscribe, bind Telegram, and use the web overview
- Live TrainingPeaks and WHOOP data reaches the product
- Plan proposals remain proposals until approval
AI works safely
- Responses use authorized evidence
- Schema, facts, and safety are validated
- Failure returns a clear degraded response
Access stays private
- Coach access needs athlete confirmation
- Coach view is selected and read-only
- Export, deletion, audit, and consent controls work
| Measure | Pilot target |
|---|---|
| Web availability | 99.5% each month, excluding announced maintenance |
| Provider sync | 95% of webhook or requested sync jobs within 2 minutes, if provider quota allows |
| AI response time | p50 <= 5 s and p95 <= 12 s. Provisional until benchmark. |
| Projection freshness | Within 5 minutes of a completed import or check-in |
| Backup | Daily encrypted off-provider backup. RPO <= 24 h and RTO <= 8 h. Monthly restore test. |
Four things every screen and every reply has to hold to.
The build spans product implementation and technical delivery.
The build turns the scope into a working pilot system. It includes application code, provider contracts, AI controls, tests, and operations.