ALL WORKS

ДВИЖ.LAB

A remote rehabilitation platform: booking, payments, video consultations, personal programmes and video reports for patients, specialists and admins. We built all of it.

Subject
  • SaaS / CRM
Completed
June 2026
Role
Development
Disciplines
  • Frontend
  • Backend

Rehabilitation without the clinic

ДВИЖ.LAB is a health-tech platform for remote rehabilitation. A patient finds a specialist, books and pays for a consultation, meets them on video, and then follows a personal programme: exercises, written tasks and video reports the specialist reviews and comments on.

For the specialist it replaces a patient CRM, a calendar, a video tool, a messenger, a programme builder and an exercise library. We built all of it: the public site, the app for patients, specialists and administrators, and the backend under them.

Three roles, one set of rules

Patients, specialists and administrators each get their own workspace, but the rules live in the backend, not in the screens: booking and cancelling, working hours with buffers and blocked time, programmes split into stages, and what each tariff allows — on the advanced one, an exercise counts only once a video report confirms it.

The admin is an operational tool rather than a table editor. A medical document opens only through a separate action that asks for a reason, issues a short-lived link and writes to the audit log.

Payments that cannot fail quietly

Payments run through YooKassa with two-stage hold and capture, full and partial refunds, idempotent webhooks and scheduled reconciliation for events that never arrived. A purchase is complete only when the server has confirmed it with the provider; the redirect after checkout proves nothing on its own.

The system also works out the platform's commission and each specialist's payout, including a refund that lands after the payout has already gone.

Calls, chat and video reports

Consultations are WebRTC video calls through our own TURN server, with signalling in a separate private container so long-lived connections never depend on the public API. Calls reconnect, survive a replaced session and show who is speaking. Chat runs on Socket.IO, scaled across instances through Valkey.

Video reports and chat attachments go straight to object storage through signed uploads. A separate worker takes each file from a queue, compresses video with FFmpeg and images with Sharp, retries what fails and recovers stuck jobs; a video that is already in the right format is repackaged instead of re-encoded.

Fast outside, tested inside

The public site is a static Astro build: specialist pages are generated from the API, and every booking button carries its intent into the app.

Behind it sit around sixty data models and more than three hundred test files, including integration tests against a real PostgreSQL and end-to-end tests in Playwright, with an 85% coverage floor on the backend.

Stack

TypeScript · React · TanStack · Astro · Bun · Hono · PostgreSQL · Prisma · Socket.IO · Valkey · WebRTC · FFmpeg · YooKassa · Yandex Cloud

NEXT PROJECTWorxspaceA B2B platform that runs technology parks: companies, spaces, service requests and accounting in one CRM, plus the public sites. We designed the architecture and built all of it.OPEN PROJECT

Yours next.

A rough idea, a half-finished brief or a problem you can't name yet is enough to start. Tell us what you're working on — we'll come back with questions, not a sales pitch.