Production-style React and NestJS application for coaches and clients, with programs, progress tracking and separate deployment environments.
Main page
Overview
LiftForge is a full-stack training platform I am currently developing for coaches and their clients.
The application is designed around training programs, workout management and progress tracking.
I use it as a production-style project rather than a prototype, with a dedicated backend, authentication, database layer, Docker deployment and separate test, UAT and production environments.
The idea is to give coaches one place to manage training programs and client progress without relying on spreadsheets, chat messages and disconnected tools.
The project also gave me the opportunity to build a larger TypeScript system across both frontend and backend rather than relying on my usual ASP.NET Core stack.
Architecture
The application is split into:
React frontend
NestJS REST API
Prisma data layer
persistent database
authentication and authorization
Docker-based deployment
I keep the frontend, backend and persistence concerns separated so each part can evolve independently.
Environments and deployment
I set up separate:
test
UAT
production deployment workflows.
This lets me validate application changes before promoting them into production rather than treating deployment as a single-step process.
The application is containerized with Docker and deployed to a Hetzner server.
Backend work
The NestJS API handles the domain logic and exposes REST endpoints used by the frontend.
Prisma is used for data access and schema management.
The backend includes:
authentication
user roles
domain entities
REST endpoints
validation
persistence
Why I built it this way
One of the reasons for building LiftForge was to work outside my primary .NET stack and prove that my backend experience transfers to a different ecosystem.
The architecture remains familiar:
explicit API boundary
structured backend
relational persistence
environment separation
repeatable deployment
The implementation technology changed, but the engineering principles did not.
Current status
In development
The core architecture, authentication, backend API and deployment workflows are implemented. Additional product functionality is still being developed.