Skip to content
Water polo player in an indoor pool, ball raised to shoot
Back to Projects

A platform for competitive water polo

WP Pulse

Capture, assess, plan. From the pool to the assessment.

Squad lists in spreadsheets, fixtures in group emails, observations on paper. Each place works on its own. Together they do not add up to a picture. Since February 2026 one place has been taking shape that brings it all together.

The platform

One place for everyone.

  • Coaches, athletes, parents and the association work on the same data, each with their own access.
  • The home screen follows its owner. Everyone arranges their own overview, what matters sits at the top.
  • No manual required. Built for water polo coaches, not only for sports scientists with a minor in computer science.
A coach’s home screen in the demo world

Everyone sees what concerns them, without searching. Athletes see their development. Parents their child. The coach the team.

Organisation

A calendar that thinks along.

  • Training and matches, sorted by squad. Everyone gets exactly the dates that concern them.
  • A subscription link carries every date over to Google or Apple, for example. The other way round, the school calendar delivers the athletes’ exams, and the coach sees them too.
  • Deadlines remind on their own. Nobody has to chase anyone by phone.
  • The subscription link works without a login. It has to serve valid data at any moment and still stay secret. That is why it can be regenerated at any time.
The calendar, from the month view to the subscription link

Organisation

A training camp organises itself.

Call-ups, accommodation, costs, invitations: a process that stays clear and takes a lot of handwork off the table.

Training camp in the demo world: squad, acceptances, requirements
Call up the squad, acceptances and refusals recorded with a reason.
Room allocation and costs in the same place as the squad.
Invitations through the app or as a finished PDF, free to use and adapt.
An emergency sheet with contacts and allergies, everything relevant to planning filterable and ready as a list.
For trips abroad the requirement list checks whose passport expires too soon and reminds them in time.

Made for poolside: few taps, large targets. Simple enough that nobody needs experience with this kind of software.

At poolside

Every shot, three taps.

  • Position, target corner, quality. During the match the coach records every shot, with the game clock running alongside. Touch on the iPad, keyboard shortcuts on the laptop. Training, penalties and opponents are kept apart.
  • No signal in the pool? Loaded once in the browser, capture continues entirely offline and syncs as soon as there is a connection again.
  • A lock per match keeps two devices from overwriting the same record. It expires on its own once a device stops responding.
Live capture during a running match in the demo world
Shot dialog: shot type, position, target corner
The live view and the shot dialog

Shots become patterns. Position alone says little. Only with target corner and quality can you tell a well chosen shot that was poorly executed from the opposite case. Across seasons the development stays visible, and nobody maintains lists.

Visibility

The athlete sees what moves them forward.

  • Your own record, always to hand: personal data, body measurements over time, injuries with status, the daily self-report on sleep, energy and motivation.
  • Performance tests with context against reference values by age group and gender, plus your own goals and the statistics from recorded matches.
  • Self-image and coach’s view: both answer the same questions, and the gap is what the conversation is about.
Athlete record in the demo world, performance section

An impression fades. An assessment stays comparable. Whether someone was strong in February and weaker in June only shows if both were recorded against the same yardstick.

Development

Single observations turn into a picture.

  • Every assessment carries a date, an occasion and a name. After a match, after a camp, or on a fixed date. Whoever wrote it is on the record.
  • Five areas, two points in time on top of each other. Technique, tactics, athleticism, one-on-one and personality. The web shows the first assessment and the current one in a single image.
  • The change is worked out for you. It is not only the mark that counts, but what has moved since last time, in which direction and by how much.
Assessments of an athlete in the demo world: history, strengths profile and record
The assessment history and the strengths profile

Built and in operation. The numbers come from the source code.

endpoints, every request passes the same permission check
0endpoints, every request passes the same permission check
screens, from the shot at poolside to the assessment
0screens, from the shot at poolside to the assessment
roles, from association access down to a parent account
0roles, from association access down to a parent account
checks before every update, each with a counter-test
0checks before every update, each with a counter-test
jobs run overnight on their own, none of them twice
0jobs run overnight on their own, none of them twice
languages: German, English, Slovak
0languages: German, English, Slovak

What you do not see. Four places where the obvious solution was not enough.

Permissions

Forbidden until explicitly allowed.

Six roles from admin down to the parent account. More than four hundred rules for endpoints, pages and data tables sit in one place that both the server and the interface read. An endpoint without an entry cannot ship, and the description of every endpoint is generated from the running application.

Offline

All the way into the login.

An accidental reload without a connection used to land you on the login screen, even though all the data was sitting locally. Now a snapshot without any access token restores the session. Whoever steals it gets a display name and a role, no permissions.

Demo world

A second database, not a switch.

Physically apart, every schema change runs on both, mail and notifications are switched off there. Every image on this page comes from it, with invented people.

Second service

A mail server must never keep a coach waiting.

Beside the application a second service runs from the same build. It drives seventeen jobs with locks in the database so none of them runs twice. Anything that depends on a foreign server goes there.

All four solve the same problem: anything that only holds while somebody remembers it will eventually stop holding. So the machine takes it over.

Built the way this era makes possible.

A year ago this would have been hard to imagine in the time available. A good two thirds of the interface work now happens with AI, following precise and clearly bounded instructions. Test scenarios that would once have cost days are ready in hours.

The time that frees up goes into the database and the server logic. The machine may build the scaffolding. Design, refinement and the decisions stay handwork, as does everything the security and integrity of the data depend on.

No change reaches production without having passed through human eyes. That is regularly where the known weaknesses get caught.

The interface

Home: everyone arranges their own overview
Home: everyone arranges their own overview

Where it stands: Built, running in production, ahead of rollout.

The platform runs in production on its own server, with backups, health checks and operational alerts. It is not being used yet: the rollout is still ahead, and until then there are no user numbers to argue with. What there is: 200,043 lines of application code excluding tests and 1,478 commits since February 2026.

I play water polo myself. What is missing at poolside I know from a player’s view, what happens in the organisation behind it from long meetings with administration. Expertise from the water, expertise from the code.

WP Pulse is the internal working name. People here like it, but it is not final yet.

Every number on this page was counted from the source on 30 August 2026, not estimated.

Photos: Pexels