Description
Ruch Kontrolowany is not a landing page with a contact form. It is an end-to-end product for orthopaedic rehab in Warszawa Bemowo: public brand, conversion flows, and a living training platform where patients and trainers share the same source of truth.
The problem
Hubert’s work is built on “mierzymy, nie zgadujemy” — VALD measurements, ACL-focused rehab, and objective re-tests. That story falls apart if the website is a brochure and the training life lives in WhatsApp, PDFs, and spreadsheet plans. The brief was to make the brand and the product feel like one system.
What shipped
A pnpm monorepo with three surfaces that share domain packages and Supabase.
Marketing & acquisition
The public site at ruchkontrolowany.com.pl carries the brand voice: oferta, kim jestem, opinie, zdjęcia, kontakt, blog, and reservation entry points. It sells diagnostics, terapia ruchem, and hybrid collaboration — then hands people into the platform instead of dumping them into email.
Web platform (patient · trainer · admin)
The Next.js dashboard is role-aware. Patients live in my-plan, my-sessions, my-bookings, my-calendar, measurements, messages, Strava, and free-workout flows. Trainers get patients, planning, training-plans, live sessions, activity, and quick-entry. Admin sits on top for operations. Auth, settings, and social pieces round out the app shell.
Native iOS · Watch · live workout
SwiftUI apps for patient and trainer, plus Watch and workout activity targets. HealthKit and Strava keep real training data in the loop. Live workout UX is first-class on device — not a thin WebView of the panel.
Architecture & craft
- Shared @rk/domain and @rk/supabase packages so web and iOS speak the same model.
- Supabase migrations + RLS as the source of truth (applied deliberately, not auto-pushed).
- TanStack Query on web for all client data; @Observable ViewModels on iOS.
- Playwright (web) and Maestro (iOS) as a hard ship gate for user-facing features.
- Sanity studio embedded for content where the brand needs editorial control.
The result is a product spine: marketing that converts, a platform that runs the collaboration, and native apps that make the daily session feel serious. Same brand, same data, three clients.
Key outcomes
- Shipped a three-surface product: marketing site, role-based web platform, and native iOS/Watch apps on one Supabase backend.
- Patient and trainer dashboards covering plans, sessions, bookings, calendar, measurements, messaging, live workouts, and Strava.
- Brand site that sells diagnostics / terapia ruchem / hybrid work and routes into the platform.
- Shared domain packages + Playwright/Maestro gates so features land tested on both platforms.