Case study · 09 / 09

Samtrening Online

White-label personal training SaaS

Coaches build plans from an exercise library, clients train in the browser with a timer, and the platform sells packages, takes payments and issues invoices — for many studios, each on its own branded subdomain.

  • SaaS
  • Multi-tenant
  • Payments

Partner

Samtrening

Industry

Fitness · SaaS

Platform

Web app, multi-tenant

Our role

Product engineering, end to end

The product

What it does

Trainers and dieticians prepare workouts and diets; clients follow guided sessions on their phone, track body measurements and buy packages. Every studio runs on the same instance under its own subdomain and branding.

Our part

What we built

A Laravel 7 application with Blade and jQuery, media on S3 behind signed URLs, PayU and Przelewy24 payments, and a Docker pipeline through AWS CodeBuild and ECR to Elastic Beanstalk.

Under the hood

The hard parts

  1. 01

    Multi-tenant by subdomain

    Routing on {organisation}.domain, middleware that checks membership and maps every controller action to a policy across admin, trainer, dietician and client roles.

  2. 02

    Orders in one transaction

    A snapshot of products at purchase time, passes split into services to deliver, an invoice with monthly numbering and an emptied basket — all or nothing.

  3. 03

    Payments that provision access

    PayU webhooks with signature verification add training credits and e-mail the client a link to set their password.

  4. 04

    Documents and media

    Exercise media through time-limited signed URLs, PDF invoices with amounts in words and bulk export to ZIP, and surveys targeted by gender and age.

The outcome

Studios sell and deliver online training under their own brand — the platform handles the rest.

Inside the product

6 screens, explained

Demo data · click any screen to enlarge

01

Workout player

An animated SVG ring counts reps and seconds, a sound marks each rep, and the next exercise starts by itself. Progress is saved on the server, so a session can continue on another device.

02

Training with phone in hand

The same player at 390 px — pause and resume handled in the client.

03

Plan builder

Exercise library with live search, variants and media preview on the left; the plan on the right, reordered by drag and drop. Saving books a training credit and notifies the client.

04

Workouts and their status

Two independent statuses per workout — prepared by the coach, completed by the client — filtered to the studio and the signed-in role.

05

Automatic invoices

Created from orders with NNN/MM/YYYY numbering per studio, overdue detection, PDF download and ZIP export.

06

Body measurements

Circumference history and current measurements drawn on a body outline.

Stack

App

  • Laravel 7 / PHP 7.3
  • Blade
  • jQuery UI
  • Bootstrap 4
  • SCSS

Data & files

  • MySQL
  • AWS S3 (signed URLs)
  • dompdf

Payments

  • PayU
  • Przelewy24

Delivery

  • Docker
  • AWS CodeBuild
  • ECR
  • Elastic Beanstalk

Next case

Vision Track →

AI fleet intelligence platform

Want a product
like this?

Get a free estimate