Architecture
- Astro/React frontend with 5 NestJS microservices (API + Strava/Garmin connectors) and a Python/Flask ML service.
- 3 PostgreSQL databases (~20 Prisma models), Redis + BullMQ queues, deployed to AWS EC2 via GitHub Actions.
- Exposed as an MCP server so an AI agent can drive the app.