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.
- 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.
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.
- 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
- 02
The React app
- React 19, on Cloudflare Pages
- The same app on iOS and Android
- Romanian and English
- 03
The API
- Node, Express 5, TypeScript
- Prisma and PostgreSQL
- Real-time updates over WebSocket
- 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.
04 · Components
What I built, by role.
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
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
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
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.
07 · The road
One year, six stages.
- Nov-Dec 2025
The first version
Roles and permissions, admin modules, quizzes with video, billing, the first deploy on Railway and Cloudflare Pages.
- Jan-Feb 2026
Events and Android
Camps, championships and trips, parent accounts, the Android app with push notifications.
- Mar-May 2026
In the stores
Launch on Google Play, iOS through Codemagic and TestFlight, accounts for the store reviewers.
- Jun-Jul 2026
The game
Recurring training sessions, reworked quizzes, levels, badges, the parent’s view of progress.
- Aug-Sep 2026
Plans and invoices
Reworked club dashboard, Demo, Basic and Premium plans, ANAF check, e-Factura, marketing CRM, coordinators.
- 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.