Bohemian Gym

Company
Product Initiative
Period
2024 – Present
Location
International
Category
Main

Summary

Bohemian Gym is a training app for athletes and gyms. Athletes build their own routines, and the app conducts the session itself (combat rounds, an audio-ducked rest bell, session recovery, retroactive RPE) and turns the history into progressive-overload recommendations. Gyms get white-label builds, custom roles and a coach-athlete workflow. It ships as 5 Flutter flavors (athlete, trainer, manager, consumer, console) over a shared offline-first core, backed by a NestJS 11 + MongoDB API with a Gemini assistant.

Highlights

  • App-conducted workout sessionsReal-time session execution as the product moat vs Excel-with-UI competitors

    Differentiates Bohemian Gym from log-after-the-fact competitors (Strong, Hevy, Jefit) by conducting the workout session itself: combat rounds with rest timer, background bell with audio ducking, and PendingSet model for in-progress tracking.

  • No data lost on interruptionZero-data-loss continuity on phone interrupt, background or crash

    Recovers interrupted training sessions through cubit snapshot and restoreFromSnapshot, so an interrupted session does not lose data and the user can pick up where they left off.

  • Five flavors, white-label per gym5 flavors from 1 codebase with per-gym white-label builds

    Serves 5 flavors (athlete, trainer, manager, consumer and console) from one Flutter monorepo, with white-label builds per gym (gym slug mapped to applicationId / bundle id) and custom roles each gym defines through role bindings and app audiences.

  • Coach-athlete invite workflowCoach-athlete workflow shipped on invite codes

    Enables coach-athlete collaboration through invite codes and assignment flow (accept, reject, revoke, pending), routine assignment dashboard, and shared gym exercise and system library.

  • Hardened auth and syncProduction-grade security and offline-resilient sync v2

    Hardens authentication and data sync for production through client-side password hashing, refresh rotation with reuse detection, snapshot backup, drift detection, and conflict-resolution UI.

  • Hardened in-app AI assistantHardened in-product AI assistant with verified 0% attack success rate

    Embeds an in-app AI assistant on Gemini (Assistant v2) with polymorphic chat, budget controls, and prompt-injection hardening across 7 defense layers (0% ASR on Spikee benchmark baseline).

  • Progressive-overload engineProgressive-overload engine differentiates from logging-only apps

    Drives real strength progress through progressive-overload intelligence: tracks lift metrics across sessions and recommends weight / rep adjustments based on volume and intensity history, instead of leaving the athlete to guess.

  • NestJS 11 API on MongoDB13 feature modules, 45 spec files with about 470 Jest cases, plus integration tests on Supertest and mongodb-memory-server

    Built the NestJS 11 + MongoDB (Mongoose) API: JWT and Google sign-in, throttling, Swagger, OpenTelemetry tracing, and a Gemini assistant that streams over SSE with fallback models and a token budget. It deploys as a Docker image to bohemian.accentio.dev through Statio, my own deploy tool.

  • Marionette across all five flavorsAn MCP agent drives all 5 flavors in debug builds

    Wired a Marionette binding into debug builds of all 5 flavors, tree-shaken from release, plus a config that teaches the driver the design-system components, so an MCP agent reads each button's label instead of an empty node.

  • Code guide locked by tests20 architecture guard tests run with the suite

    Wrote the project's code guide (a 2,300-line CLAUDE.md) and locked it with 20 architecture tests, such as design-system import purity and the console import graph.

  • CI to Firebase App DistributionAbout 1,360 Flutter test cases across 158 files

    Ships the app through GitHub Actions and Fastlane to Firebase App Distribution, with the signing key pulled from GCP Secret Manager over OIDC and the APK signer checked in the pipeline.

Stack

  • Flutter
  • Dart
  • BLoC / Cubit
  • ObjectBox
  • go_router
  • Dio
  • Freezed
  • NestJS
  • MongoDB
  • Mongoose
  • JWT
  • Google Sign-In
  • Gemini API
  • OpenTelemetry
  • Docker
  • GitHub Actions
  • Fastlane
  • Firebase App Distribution
  • White-label
  • Multi-tenant
BUILT FOR
  • Screen readers
  • LLM agents
  • ATS parsers
  • Responsive
  • Fast load
alvaro-bash --project bohemian-gym --locale enEXIT 0v1.0.0· — · São Paulo · Brasil
OPEN TERMINAL