Bloom logo

Bloom

A self-hosted workout tracker for strength and cardio. Plan with templates, log every set, and follow your progress from your own database.

Bloom on GitHub Gallery (6)

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