About Contakt Academy

Built from the court outward.

Academy began with a practical observation: the schedule is only useful when the roster, coach, household, payment and next decision agree with it.

Noah Cladera, founder of Contakt, on a tennis court

Noah Cladera · founder

Coach the forehand. Write the code. Listen to the office.

Academy grew from coaching across clubs in The Hague and Amsterdam. The same week repeatedly crossed booking software, spreadsheets, chat groups, calendars and payment records. Academy brings the schedule, roster, coach, household and payment result into the same workflow.

See how enrollment, coach absence, class changes, cancellations and attendance move from the first action to the final result.

See the week in the product →

The engineering

Built like the club depends on it. Because it does.

Academy is one system, built by one team. This is the standard underneath every screen.

Web officeInstallable PWANative iOS · SwiftNative Android · KotlinEnglishNederlandsEspañol
01

One shared truth.

Change a lesson time once. The office screen, the coach’s phone and the family’s app already agree — there is nothing to copy across, and nothing to forget.

02

Native on both platforms.

The iPhone app is written in Swift, the Android app in Kotlin, and they do the same things. A coach takes roll call one-handed, courtside, holding a basket of balls in the other.

03

Walls, not curtains.

Every club’s records are sealed off in the database itself, and every single query has to say which club is asking. One that forgets gets refused. Your members never turn up in another club’s list.

04

Decisions keep their receipts.

Every approval, change and cancellation keeps the person, the time and the reason. Six months later you can still see who said yes to the refund.

05

The money is yours before we see a bill.

Every euro a family pays — lessons, memberships, camps, court hire — lands in your club’s own Mollie account, under your club’s name and on your club’s payout schedule. We take none of it, and no card number ever reaches us. Academy is a separate monthly bill, from us to you.

06

Three languages, first-class.

A Dutch parent reads Dutch — the app, the reminder e-mail, the receipt, the cancellation notice. Same for English and Spanish.

07

Tested like a working week.

Before a release ships we walk every screen on web, tablet and iPhone, in light and dark. We test the payment that fails and the permission that should say no, because those are the ones that cost you a phone call.

08

No trackers. No noise.

This website sets no cookies and runs no analytics. The product asks only for what the club’s week needs.

09

The legal documents are public.

The Data Processing Agreement, the business subscription terms and the service privacy notice are published at permanent versioned URLs — readable before you sign, citable by version afterwards.

10

A subject’s data, on request.

GDPR consent records, per-subject data export, anonymisation workflows and an audit log are in every plan. Five companies help run the service — Render, Supabase, Mollie, Resend and Upstash. They are named in the agreement you sign, and if we ever change one you get 30 days’ notice.

Technical dossier

How it is built.

Academy is one codebase, built end to end by one team. If you want the full specification before you commit a club to it, here it is.

Platforms

Web office
A full administrative workspace in the browser — schedule board, decision inbox, people, payments, cash-up and reporting — built in TypeScript and React with server-rendered pages for speed.
Native iOS
Swift and SwiftUI throughout. Roll call, coach calendars, enrollment, chats and payments, sized for one hand in the middle of a session.
Native Android
Kotlin and Jetpack Compose, mirroring the iOS app screen for screen — full feature parity across both native apps.
Installable PWA
The web app installs to any home screen and presents standalone, so front-desk tablets and coach phones get an app-grade experience with zero deployment.
Languages
English, Dutch and Spanish across every screen, e-mail and PDF. A check fails the build if a phrase is missing in one of them.

Architecture

One system
Schedule, enrollment, courts, people, payments and messaging share one data model. There are no modules to integrate because nothing was ever separate.
Tenant isolation
Every organization’s records carry their scope in the data layer, enforced on every query. A missing scope fails the request — it can never widen it.
Role-based access
Owner, office, front desk, coach, member and household roles each see exactly their slice — a 34-capability permission layer, customisable per person, enforced server-side and mirrored in both native apps. The desk can file a refund request; only office and owner move money.
Audit trail
Decisions, approvals and cancellations are stored with who, when and why. You can search that history the way you search anything else.
Migrations
Every change to the database ships as a numbered, reviewed step, and we back up production and prove the backup restores before any of them run. The demonstration organizations used for sales and screenshots are built from their own seeds — never from a customer’s records.

Money

Your own account
Member and household payments settle into your organization’s own Mollie account, and we take no percentage of them. Academy is a separate bill from us to you.
Nobody pays twice
If the bank reports the same payment twice, it lands on the account once. The same goes for a refund.
Reconciliation built in
Card, online, cash and terminal takings feed one daily cash-up: recorded versus counted, variance by day, exportable. See the front desk →
VAT where it belongs
Per-item VAT on the register, a day or week VAT CSV your bookkeeper can read, and takings split by payment method and by source.

Quality

Failure paths first
The tests lean on what hurts: the payment that fails, the person who should not have access, the button pressed twice.
Visual touring
An automated tour walks web, tablet and iPhone in light and dark and photographs every screen, so we see a broken one before you do.
Type-checked end to end
One typed language from the database to the screen. Rename something and the build stops, long before the front desk meets it.
Monitored in production
We watch the live service from the outside, around the clock, so we usually know before you call.
No waiting on the court
Roll call, RSVPs and approvals tick the moment you tap them and settle in the background. On club wifi, in the rain, it still feels instant.

Design

One design system
One set of type, colour, spacing and motion drives the website, the office screens and both apps. Learn one, you know the others.
Accessibility
Contrast-checked colours, keyboard paths and screen-reader labels across the office screens — because the front desk doesn’t get to choose its tools.
Tenant theming
Set your colour and logo once, and they carry through every screen a member or parent opens. The palette stays readable whatever you pick.

Privacy

No trackers
This website sets no cookies and runs no analytics. No pixels, no fingerprinting, nothing to consent to.
Published legal documents
The Data Processing Agreement, the business subscription terms and the service privacy notice live at permanent versioned URLs — read the current one before you sign, cite the one you signed later. app.contaktacademy.com/legal
Subprocessors, named
Five: Render for hosting, Supabase for the database, Mollie for payments, Resend for transactional email, Upstash for rate limiting. All five are named in the DPA, and the list carries a version so you can see when it last changed.
Subject rights in every plan
A parent asks what you hold on their child; you export it and hand it over. Consent records, anonymisation and the audit log are on Core too.
Data minimalism
The product stores what the club’s week needs and nothing speculative. Children’s schedules are never public by default.
European company
Contakt is a Dutch company (KvK 92963307). BTW, iDEAL through Mollie and Dutch-speaking support were where this started.

How Academy works

Every change reaches the people who need it.

Open a request and see the person, session, decision and payment outcome together.

Product

Update the week once.

When the office makes a change, the coach and household see their updated schedule.

Requests

Follow every request to the result.

See who asked, who decided and what changed.

Plans

Choose by organization size.

Choose Core, Plus or Complete from your locations, courts, coaches and participants. Choose Managed when you want onboarding help.

Responsibility

See who made the decision.

Every decision keeps the person’s name, time and reason attached.

Start with your own week

Create your club, or bring us your week.

Start your club or program from €99 a month — or book 45 minutes and we’ll run one of your own weeks through Academy with you.