Strava AI Coach Discord Bot
Serverless systems developer (Personal project)





A serverless, AI-driven fitness coach integrated directly into Discord. The bot ingests real-time activity and club webhook events from the Strava API, allowing athletes to trigger performance diagnostics via Discord Slash Commands. Utilizing Deepseek API, the bot generates personalized coaching advice, kudos, and performance cards.
- 01Architected an event-driven serverless pipeline using AWS API Gateway and SQS to ingest Strava activity webhooks and Discord Slash Commands.
- 02Built 3 Lambda functions: an API handler behind API Gateway for sync routing and request validation, an SQS-triggered worker for async processing of heavy commands with DLQ retry, and an EventBridge Scheduler-triggered function for automated weekly athlete digests.
- 03Designed a single-table DynamoDB schema with 6 entity types sharing PK/SK under USER#{id} to manage user credentials, session states, and activity logs with minimal latency.
- 04Connected Deepseek API to process athletes' activity data, for insight extraction and personalized coaching response generation.
System Architecture

A fully serverless AWS architecture with two distinct ingestion paths — Strava webhooks and Discord Slash Commands — both entering through a single API Gateway. Discord requires a response within 3 seconds or it surfaces an error to the user, while Strava requires a 2-second acknowledgment to consider a webhook delivery successful. SQS sits between the gateway and the Lambda workers as an async buffer, letting the API handler immediately return a 200 to both platforms while heavy processing happens in the background — preventing user-facing errors and keeping UX smooth. A separate EventBridge Scheduler lane sits outside the request path, driving the weekly digest independently of any user-triggered event.