Naar de inhoud
Terug naar het werk

Eigen product · SaaS

PlayerPath: minder administratie, betere spelers

Van inschrijving tot incasso, en van trainersrapport tot spelerskaart. Een compleet platform waar meerdere voetbalscholen tegelijk in draaien, elk met strikt eigen data.

Soort
SaaS-platform voor keeper- en voetbalscholen
Gebouwd met
Laravel, Vue en Inertia
Rol
Idee, ontwerp en ontwikkeling
Het dashboard van de schooleigenaar: actieve spelers, gemiddelde rating, rapporten en omzet.
Het dashboard van de eigenaar, met de gegevens van de voorbeeldschool.

Wat is PlayerPath?

PlayerPath is software voor keeper- en voetbalscholen: de scholen die naast de club trainingen, kampen en privélessen geven, en daar hun brood mee verdienen. Het neemt alles over wat nu in Excel, WhatsApp en losse Tikkies zit, en voegt er iets aan toe wat die losse gereedschappen nooit konden: zichtbaar maken hoe een speler vooruitgaat.

Het is een SaaS-platform. Dat betekent dat elke school gewoon inlogt op app.playerpath.nl, zonder iets te installeren, en dat alle scholen in hetzelfde systeem draaien. Toch ziet een school nooit iets van een andere school. Die scheiding zit diep in de techniek, niet in een instelling die iemand per ongeluk verkeerd kan zetten.

Ik heb het van het eerste idee tot de live omgeving zelf bedacht, ontworpen en gebouwd: het datamodel, de schermen, de betalingen, de marketingsite en de server waar het op draait.

Het probleem dat het oplost

Een keeper- of voetbalschool draait vaak op WhatsApp-groepen, een Excel-lijst en losse Tikkies. Ouders weten niet hoe hun kind vooruitgaat, trainers schrijven niets op, en de eigenaar zit ’s avonds betalingen na te lopen. Bestaande pakketten zijn gebouwd voor clubs met vrijwilligers, niet voor een school die ervan moet leven.

PlayerPath vervangt die zes losse dingen door één systeem. Excel wordt een administratie die altijd klopt, de WhatsApp-groep wordt mededelingen per groep, Tikkies worden incasso die vanzelf loopt, en het gevoel over een speler wordt een rapport met cijfers dat ouders direct zien.

Voor wie het is

Vier soorten gebruikers, en ieder krijgt een eigen scherm met alleen wat voor hem bedoeld is.

De eigenaar
Eén dashboard met actieve spelers, omzet, openstaande rekeningen en wie er al een tijd geen rapport heeft gehad. Inschrijvingen komen binnen in een inbox, en met één klik op goedkeuren staan speler, ouderaccount en betaling klaar.
De trainer
Ziet alleen zijn eigen groepen en trainingen. Vinkt op zijn telefoon naast het veld af wie er is, en vult na de training per speler in dertig seconden een rapport in, voorgevuld met het vorige.
De ouder
Schrijft zijn kind in via één link, betaalt met iDEAL of incasso, meldt af voor een training en krijgt bericht zodra er een nieuw rapport is. In een tijdlijn ziet hij hoe zijn kind groeit, zonder ooit de cijfers van een ander kind te zien.
De speler
Krijgt een eigen spelerskaart, zoals in een voetbalgame, die na elk rapport verandert. Een kind zonder e-mailadres krijgt een eigen link zonder inlog, die je als app op de tablet zet.

Hoe het werkt

Een school start nooit met een leeg scherm

Een nieuwe school krijgt meteen voorbeeldspelers met rapporten, een groep en trainingen, zodat je direct ziet wat het product doet. Een rondleiding loopt door de echte app, en een wizard van negen stappen richt daarna je eigen school in: naam, logo, kleur, locatie, aanbod en betalen. Zodra je klaar bent, verdwijnen de voorbeelden vanzelf.

Ouders schrijven zichzelf in

Elke school heeft een eigen aanmeldpagina, die ook op de eigen website van de school past. Eerst het aanbod, met prijs, data, leeftijd en hoeveel plekken er nog zijn; pas daarna de gegevens. Is iets vol, dan komt er een wachtlijst, en schuift de volgende vanzelf door als er een plek vrijkomt.

Het trainingsrooster met aanwezigheid en vrije plekken.Het inschrijfformulier van een school op een telefoon.
Links het rooster voor de school, rechts de aanmeldpagina zoals een ouder hem op de telefoon ziet.

Trainen, afvinken, beoordelen

Trainingen herhalen wekelijks, met trainer en locatie. De trainer vinkt aanwezigheid af, de ouder meldt zelf af, en die twee worden apart bijgehouden. Na de training een rapport van zes categorieën, met keeper-onderdelen als reflexen, uitkomen en voetenwerk apart van die voor veldspelers.

Het geld komt vanzelf binnen

Via Mollie: iDEAL, maandelijkse incasso met mandaat, of in termijnen. Veertien dagen voor een incasso krijgt de ouder een aankondiging. Mislukt een betaling, dan gaat er na drie, zeven en veertien dagen een herinnering met een nieuwe betaallink. De eigenaar hoeft niets na te lopen.

Het betalingsoverzicht: ontvangen, openstaand en achterstallig.
Het betalingsoverzicht: wat er binnenkwam, wat openstaat en wat misging.

De spelerskaart

De spelerskaart is het hart van PlayerPath. Elke speler krijgt er een, met een overall rating, zes categorieën, badges en een level. Na elk rapport rekent het systeem de kaart opnieuw uit, en een kind ziet zijn eigen vooruitgang letterlijk groeien.

Er zitten drie getallen in die bewust los van elkaar staan. De rating zegt hoe goed je bent ten opzichte van je leeftijdsgroep en kan dalen. XP staat voor inzet: aanwezig zijn, rapporten, groei. Dat daalt nooit. En het level, van brons via zilver en goud naar elite, loopt op XP. Wie trouw komt trainen, komt dus op goud, ook zonder groot talent.

De kaart kantelt mee als je hem beweegt, het frame verandert per level, en elk seizoen blijft bewaard als verzamelkaart. Er zijn bewust geen ranglijsten: een kind van elf hoort niet op plek veertien van twintig te staan.

Vier spelerskaarten naast elkaar, van brons via zilver en goud tot elite.
Van brons tot elite. Het frame van de kaart laat zien op welk level een speler zit.

Wat het allemaal kan

Wat PlayerPath bewust niet doet

Wat je weglaat zegt net zoveel als wat je bouwt. Deze vier keuzes zijn met opzet zo gemaakt.

Geen prijs per speler
Eén bedrag per maand. Groeit een school van veertig naar honderdveertig spelers, dan blijft de rekening gelijk.
Geen jaarcontract
Geen opstartkosten en maandelijks opzegbaar. Als het niet werkt, moet je weg kunnen zonder gedoe.
Geen ranglijsten
Groei ten opzichte van jezelf en je leeftijdsgroep, geen klassement waarin iemand altijd onderaan staat.
Gegevens blijven van de school
Het gaat om kinderen. Data blijft binnen de EU, gaat niet naar derden, en bij vertrek krijg je een export mee.

Wat het kost

Eén vast bedrag per maand, hoeveel spelers een school ook heeft. Geen opstartkosten, maandelijks opzegbaar, en elke maand wisselen van pakket mag. Alle bedragen zijn exclusief btw.

Hoe het gebouwd is

Eerst het fundament, dan pas de features

Meerdere scholen in één systeem betekent dat de ene school nooit de data van de andere mag zien. Dat is geregeld op één centrale plek aan de serverkant, en er zijn tests die dat bij elke wijziging opnieuw bewijzen.

Het onderscheidende deel als eerste werkend

Een trainer vult in dertig seconden een rapport in, en de spelerskaart van het kind verandert zichtbaar mee. Rating, XP en level komen uit één rekenkern, zodat elk getal op de kaart altijd uit te leggen is.

Betalen bewust als laatste

Het gevoeligste stuk kwam pas op een product dat al werkte. Geld staat overal in hele centen, nooit als kommagetal, en elke betaalstatus loopt via een vaste statusmachine.

In fasen, en elke fase getest

Twaalf fasen, van datamodel tot productie. Een fase begon pas als de vorige werkte, en elke werkende stap staat in git. Daardoor kan er altijd terug.

De techniek

Laravel, Inertia en Vue. De Laravel-controller haalt de gegevens op en controleert wie wat mag zien, Inertia geeft ze mee aan de pagina, en het Vue-component krijgt ze binnen als props. Een losse API ertussen is daardoor niet nodig. Het geheel wordt bewaakt door bijna achthonderd geautomatiseerde tests.

Backend
Laravel 12, PHP 8.4Routes, controllers, validatie en alle rekenregels. Wat mag en wat klopt, wordt hier beslist.
Frontend
Vue 3, Inertia 2, TypeScript, Tailwind CSSVoelt als een app, zonder losse API ertussen. De controller geeft data mee, Vue krijgt het als props.
Inloggen en rechten
Laravel Fortify, Spatie PermissionVier rollen: eigenaar, trainer, ouder en speler. Elk ziet alleen wat voor hem bedoeld is.
Betalen
MollieiDEAL, doorlopende incasso met mandaat, termijnen, storno’s en herinneringen.
Data en achtergrond
MySQL, Redis, QueuesMails, maandoverzichten en facturen draaien op de achtergrond, zodat niemand op een scherm wacht.
Hosting en kwaliteit
Hetzner (EU), Nginx, PHPUnit, AstroKinderdata blijft binnen de EU. De marketingsite is apart gebouwd in Astro, net als deze site.

Wat ik ervan leerde

Beveiliging hoort in de server, niet in het scherm

Een knop verbergen is geen beveiliging. Wie wat mag zien, beslist de server, en een test controleert het.

Een getal moet uit te leggen zijn

Elke XP-punt is een regel met een reden. Vraagt een ouder waarom de kaart zilver is, dan is daar een antwoord op.

Tests zijn wat je laat doorbouwen

Bij bijna achthonderd tests durf je iets om te gooien. Zonder die tests was elke nieuwe functie een gok geweest.

Heb je een voetbal- of keeperschool?

Bekijk wat PlayerPath voor jouw school doet en vraag een vrijblijvende demo aan.

Naar playerpath.nl

Zelf iets laten bouwen?

Wat voor een voetbalschool kan, kan ook voor jouw bedrijf. Vertel waar het schuurt.

Plan een gesprek