AGENCY
ZGRZ Agency

Coaching platform with unified dashboards for coaches and clients

A digital platform for managing programs, sessions, and referral campaigns — with transparent analytics and stable user dashboards.

 

Saas
MVP development
B2B
Consulting
Directus CMS
Back-Office Development
Admin Panel
Custom Development

About the Project

The platform enables coaches to run programs, manage clients, and track performance. Users register, enroll in programs, book sessions, track their progress, and access learning materials. Coaches run group and individual programs, work with referrals, and view analytics on clients and revenue inside their own dashboard. The product had been started by another team but was never finished. Our goal was to stabilize the platform, fix critical issues, and complete a list of modules from the client's backlog.

 

About Customer

Helga is the Operations Director of an international coaching business that sells online programs, in-person retreats, and micro-products. The revenue model combines B2C sales to end users with B2B formats for small teams and entrepreneurs. She decided to build a proprietary platform from scratch to retain full control over programs, sessions, roles, and analytics. The previous vendor couldn't handle the product's complexity or hold the deadlines. Helga was looking for a team that could quickly bring structure to the data and the business logic.

 

Inherited codebase

 

The platform had been developed by several teams, so part of the implementation was undocumented and a few modules behaved differently from what was expected.

 

Complex role model

 

Separate dashboards for coaches and clients, different permission levels, referral relationships, and group programs all required precise access control design and data boundaries.

 

User dashboards

 

Inside the personal dashboards, navigation between screens occasionally broke, session data sometimes duplicated, and progress and statistics were calculated inconsistently.

 

Inconsistent analytics

 

Separate dashboards already existed, but with no unified metrics model. Some calculations ran on the frontend, others on the backend, so the numbers were inconsistent.

 

Proposed Solution

We took over the platform when it was roughly 30% complete. The first step was a technical audit, followed by alignment on change priorities and phased work across both frontend and backend. The main focus was dashboard stability, a transparent data model for programs, sessions, and referrals, and consistent analytics for coaches.

 

Technical audit and backlog prioritization

 

First, we mapped the architecture — the React frontend, the Directus backend with custom logic, and the connected payment services. Separately, we analyzed the client's backlog and split it into clear blocks: critical bugs, UX improvements, and new features. For each block, we assessed complexity and business impact, so we could agree on the rollout order.

 

Program and session data models

 

We restructured the Directus data model into a more predictable shape — revisiting the entities for programs, modules, sessions, referrals, and transactions. We aligned the relationships between coaches, clients, and programs, and removed duplicated fields and ambiguous states.

 

React user dashboards

 

We refactored the components handling program lists, session booking, purchase history, and referral links. We also unified data-loading and error-handling patterns so the dashboards behaved the same way across the product.

 

Dashboards and metrics

 

We moved the key calculations (progress, revenue per program, referral performance) to the backend, so the same formulas feed every dashboard. The frontend then consumes already-aggregated data, removing the risk of discrepancies.

 

Referral logic

 

We refined the referral mechanics — with explicit source attribution, coach linkage, and period-based conversion tracking. We separately checked how the logic behaves on repeat purchases and program updates.

 

Notifications and UX details

 

We improved the message flows triggered by registration confirmation, new session assignments, schedule changes, and payment reminders. We also planned to work through the small but important interface details — loading states, empty states, tooltips — to cut the volume of routine support questions.

 

The team got access to the repositories, the staging environment, and the client's backlog. We started by reproducing the core business flows: registration, program purchase, coach dashboard access, dashboard review. That made it clear which problems hit live users and which lived only at the code level. From there, we delivered a technical audit report with the risks and a proposal for breaking the work into iterations.

 

React.js
TypeScript
Node.js
PostgreSQL

+5 Resource

Results

The platform retained all existing functionality and became a production-ready product. The personal dashboards run more reliably, analytics are aligned, and new programs and referral campaigns now ship without operational friction.

 

99.6%

of user sessions completed without critical errors

−68% support requests

in the first 4 weeks after release

0 discrepancies

in key metrics across screens

P95 = 520 ms

for dashboard endpoints

−35% drop-off

in the session-booking flow

+42%

productive operations time for the platform team

2.1× faster

to launch a new program

Stable personal dashboards

the core flows for coaches and clients run without critical failures

Transparent data for coaches

all coming from a single metrics model

Manageable role model

with structured access rights for coaches, clients, and admins

Ready for new launches

without chaos in the data or the interface

On-time production release

well ahead of the deadline

Get in Touch

Or send us a message and we'll get back to you within 15 minutes during business hours

Enter your name

Enter your email

Enter your message

Andrii Trubai

Andrii Trubai

CEO | Head of WebDev department

More Success Stories