← Client work

Case study · Client: iGrowth · 2025-2026

Sportiv Educat: the sports club in one app, and children learn by playing.

A platform for sports clubs in Romania: teams, training sessions, attendance, physical progress, payments and invoices. For children, the app has a game with quizzes about nutrition, sleep, hydration and exercise. I built the web app, the iOS and Android apps, the server and the marketing site.

Client
iGrowth
Role
Full development: server, web, mobile, site
Period
November 2025 - October 2026
Status
Live, in the App Store and Google Play
The problem
Children’s sports clubs keep athletes, attendance and fees in notebooks, spreadsheets and WhatsApp groups.
What I built
The web app, the iOS and Android apps and the site, for five roles, with payments through Stripe Connect, e-Factura and a game for children.
The result
Live in the App Store and Google Play, after a year of development in six stages.
sportiveducat.ro
The Sportiv Educat page for clubs: run your sports club, completely and professionally
  • 5 roles: admin, club, coach, parent, athlete
  • 762 commits in two repos
  • 109 data models
  • 724 automated tests on the server

Counted in git and in the code, on 5 November 2026.

01 · The problem

Clubs work in notebooks, spreadsheets and WhatsApp groups.

A children’s sports club keeps track of athletes, training sessions, attendance, fees and competitions. Usually, each of these lives in a different place. The coach loses time on paperwork, and parents find out late what their child is doing.

iGrowth asked one more question: how do you get a child to come back, not only to training, but also to the things outside it, like food and sleep? The answer was a game.

02 · What it does

One app, five ways to use it.

The club has a dashboard with teams, coaches, venues, calendar, payments received and reports. The coach takes attendance from the phone and records physical progress. The parent sees the child’s week, events and payments. The child plays quizzes, collects points, levels up and unlocks badges.

The club pays a subscription per athlete, with a 14-day trial. Fees from parents go straight into the club’s account, through Stripe Connect, and the platform takes nothing from them.

The athlete app: the quiz screen, by category
The athlete: quizzes by category
The athlete app: bronze, silver, gold and platinum badges
Badges to unlock
The coach app: training attendance
The coach: attendance
The parent app: the child’s week
The parent: the child’s week

Screens from the interactive prototypes of the three apps, with invented data. The real apps look the same, with the club’s data.

03 · The architecture

One codebase for web, iPhone and Android.

The store apps are the same React app, packaged with Capacitor. The native shell loads the live version, so a fix reaches phones immediately, without a new App Store review.

  1. 01

    The marketing site

    • Static generator with no dependencies
    • Sign-up and payment directly from the site
    • Prices read from the app at build time
  2. 02

    The React app

    • React 19, on Cloudflare Pages
    • The same app on iOS and Android
    • Romanian and English
  3. 03

    The API

    • Node, Express 5, TypeScript
    • Prisma and PostgreSQL
    • Real-time updates over WebSocket
  4. 04

    External services

    • Stripe: subscriptions and Connect
    • Oblio: invoices and e-Factura
    • ANAF, Firebase, Brevo

Club sign-up checks the company with ANAF, the Romanian tax authority, before creating the account, so that fake clubs do not appear.

The Sportiv Educat page for parents: raise a healthy, motivated child, as if at play
The page for parents.
The Sportiv Educat page for coaches: spend time with your athletes, not with paperwork
The page for coaches.

04 · Components

What I built, by role.

01

The club

The club administrator’s dashboard.

  • Teams, coaches, staff, athletes, venues
  • One-off or recurring training sessions, with an alert when halls overlap
  • Payments received, invoices, automatic payments with consent
  • Reports and rankings by team, club and year
  • Own branding on the Premium plan
02

The coach

15 screens, made for the phone.

  • Attendance: present, late, absent, excused
  • Configurable physical metrics, with charts
  • Cash handed over to the club
  • Points and events
  • 360 view of each athlete
03

The parent and the athlete

The game and club life, in the same app.

  • Weekly quizzes by category and theme
  • Points, levels, badges, lives, rankings
  • The Growie mascot
  • Family subscriptions, with a sibling discount
  • Events: camps, championships, trips
04

The platform

56 screens for the iGrowth administrators.

  • Clubs, plans, billing, revenue
  • Quizzes, categories, themes, scheduling
  • Emails, marketing CRM, push campaigns
  • Contracts, support tickets, reports
  • Affiliate programme

05 · The money

Tax-compliant invoices, without keeping certificates on the server.

Each club gets a monthly invoice, prorated when it changes plan. The tax invoice and its submission to e-Factura, Romania’s national e-invoicing system, go through Oblio, over its API. The platform only generates pro forma invoices as PDF: the server runs in containers that can be rebuilt at any time, so it is not the right place for a company’s digital certificates.

Payments from parents to the club go through Stripe Connect, with automatic payments based on consent, refunds, reconciliation and export for accounting.

06 · The game

Small rules that keep the game fair.

Lives refill based on the time that has passed, calculated when the child opens the app. No process needs to run in the background. Experience only goes up, so if a child spends points in the shop, they never drop a level. Level L needs 50 × (L−1) × L experience points.

The free plan went down from five lives to three, so the difference from a subscription is visible. The content follows a written method: category, theme, 10-15 chapters, one idea per question, with an explanation after each answer.

The athlete app: lives and life packs
Lives and packs
The coach app: today’s schedule and what needs doing
The coach: today

07 · The road

One year, six stages.

  1. Nov-Dec 2025

    The first version

    Roles and permissions, admin modules, quizzes with video, billing, the first deploy on Railway and Cloudflare Pages.

  2. Jan-Feb 2026

    Events and Android

    Camps, championships and trips, parent accounts, the Android app with push notifications.

  3. Mar-May 2026

    In the stores

    Launch on Google Play, iOS through Codemagic and TestFlight, accounts for the store reviewers.

  4. Jun-Jul 2026

    The game

    Recurring training sessions, reworked quizzes, levels, badges, the parent’s view of progress.

  5. Aug-Sep 2026

    Plans and invoices

    Reworked club dashboard, Demo, Basic and Premium plans, ANAF check, e-Factura, marketing CRM, coordinators.

  6. Oct 2026

    The club’s money

    Stripe Connect, automatic payments, refunds, reconciliation, rankings, 360 views.

08 · Metrics

What I counted.

Measured in git and in the code on 5 November 2026. The usage figures belong to the client and I do not publish them here.

  • 762commits: 732 on the app, 30 on the sitegit
  • ~519API routes on the servermeasured
  • 123routes in the web appmeasured
  • 191React screens and componentsmeasured
  • 1.0.5mobile app versionin code
  • €1 / €2club subscription per athlete per month, Basic and Premium, at the time of writingfrom the site

How much code

109
data models
79
migrations
67
logic modules
47
test files
~77k
lines on the server
~96k
lines in the app

09 · What I learned

What I take with me.

A thin native shell shortens every fix

Because the store app loads the live web version, a bug fixed today reaches phones today. The price paid: the first screen depends on the network.

Keep the money where it belongs

Fees go straight to the club, through Stripe Connect, and tax invoices through Oblio. The platform holds no money and no certificates.

A game needs accounting rules

Lives, points and levels have the same problems as a balance: they must not go down by mistake and must not depend on a process that might not run.

Test the domain logic, not just the screens

The rules for plans, proration, lives and levels have dedicated tests. That is where the expensive bugs show up.

Do you need a web and mobile app for your organisation?

I build the platform, the apps and the site, with payments and invoicing included. Write to me and we will see if it fits.