Bloom
A self-hosted workout tracker for strength and cardio. Plan with templates, log every set, and follow your progress from your own database.
Technologies
- C#
- ASP.NET Core
- React
- TypeScript
- PostgreSQL
- Strava API
- Docker Compose
- GitHub Actions
- Clean Architecture
- DDD
Architecture
- Backend
- ASP.NET Core 10 minimal API with Clean Architecture and DDD. Scalar API docs in development.
- Frontend
- React 19 and TypeScript, built with Vite.
- Data
- PostgreSQL 16 with Entity Framework migrations.
- Auth
- JWT tokens and bcrypt-hashed passwords.
- Deployment
- Docker Compose runs the frontend, API and database. Secrets live in one env file.
- Quality
- Unit tests for the domain and application layers. CI on GitHub Actions.
Features
Training
React · ASP.NET Core · PostgreSQL · Strava API
- Reusable templates with target reps, weight and RIR, or duration and distance for cardio
- Load a template into a session to start
- Log reps and weight per set, with every session timestamped and kept
- Import and sync activities from Strava
- Cardio logs show their GPX route on a map
Insights
React · TypeScript
- Volume trends over time
- Personal records per exercise
- Muscle-group breakdown
- Standalone macro and one-rep-max calculators