Case study
A whitelabel platform for diving communities and schools: courses, students, instructors and real-time chat. Every club runs under its own name and its own logo.
The problem
A dive club lives in messengers and spreadsheets: the course group in one chat, the instructors in another, the student lists and their progress in a file that one person keeps. Teaching, meanwhile, requires memory: who is on which course, what has been passed, what has been assigned, what notes the instructor left.
They needed one system where communication and record-keeping live together — and where every club appears under its own brand rather than somebody else’s.
What we did
Result
Why so few moving parts
Problems like this are usually solved with a message broker, a separate cache and a cluster of websockets. We did without: updates travel as an ordinary event stream over HTTP, and the data sits in SQLite. Fewer nodes means less that breaks at night and needs someone on call.
This is not saving on reliability but sourcing it differently: a system made of few parts is easier to keep running for years. The logic is covered by more than a hundred automated tests.