Cookie policy

Last updated: 28 October 2026

1. What are cookies?

Cookies are small files stored on your device when you visit a website. Similar technologies can also store or read information on your device. In this policy, we refer to these technologies together as cookies.

2. What types do we use?

Necessary

These cookies and similar technologies are needed for TrainerLink to work safely, including sign-in, session management, security, bookings, payments and storing your cookie preferences.

Preferences

With your permission, we remember preferences such as your language, recent dashboard searches and whether the onboarding widget is open.

Share app usage

With your permission, we measure how TrainerLink is used and performs. This choice also includes masked session recordings; website recordings are currently disabled.

Read more about app usage and session recordings in the privacy policy.

Marketing

Marketing cookies are intended for advertising measurement. We currently use no advertising trackers.

3. Your cookie preferences

Necessary cookies do not require consent. We ask for your permission before using the other categories. You can reject optional cookies and change or withdraw your choice at any time through Cookie preferences at the bottom of the website or the button below. You can also delete or block cookies in your browser; blocking necessary cookies may affect how the website works.

4. Cookie overview

Below you can see the cookies and similar technologies we use, their purpose and provider, and how long they stay on your device.

Cookies expire automatically. Local storage has no automatic expiry: validity is checked when used, and values may remain until replaced or cleared. Requested functional settings stay available when you reject optional cookies. Payment providers may use necessary storage during checkout; see our privacy policy.

tl_consent_subject / tl_cookie_consent (cookies)

Provider
TrainerLink
Category
Necessary
Purpose
Link this browser to your cookie choice and remember the consent dialog.
Retention
180 days

trainerlink.cookieConsent (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Local copy of your choice. Optional processing starts only after verification of the server record.
Retention
Until replaced or browser storage is cleared; server validity up to 180 days

trainerlink.cookieConsent.pending.v1 (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Retry an unsaved cookie choice. Does not authorize tracking.
Retention
Until saved successfully, replaced or browser storage is cleared

trainerlink.cookieConsent.intent.v1 (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
A random choice ID prevents a delayed response from overriding a newer withdrawal. Does not authorize tracking.
Retention
Until next choice or browser storage deletion

sb-*-auth-token (localStorage)

Provider
Supabase
Category
Necessary
Purpose
Sign-in and session management.
Retention
Until sign-out or deletion; expired sessions are not accepted

trainerlink.auth.* / trainerlink.guestTrainerSave.v2.* (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Safely resume a requested registration, email confirmation or saved trainer.
Retention
Confirmation and guest request valid for 24 hours; removed on completion, expiry check or deletion

trainerlink.portalRole:* / trainerlink.notificationInstallation* (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Selected account area and device ownership for requested push notifications; does not authorize marketing.
Retention
Until changed, unlinked, signed out where applicable or browser storage is cleared

trainerlink.nativeAppBanner.dismissedAt.v1 (localStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Remember your request to dismiss the app prompt.
Retention
Effective for 30 days; stored value until replaced or deleted

trainerlink:ios-install-guidance-dismissed / trainerlink.pwa-permission-setup.v1

Provider
TrainerLink
Category
Necessary
Purpose
Remember dismissed installation guidance and completed or skipped notification/location setup. Does not grant browser permissions.
Retention
localStorage until deletion; permission setup falls back to sessionStorage or memory when unavailable

trainerlink.bookingIntent.v1 / trainerlink.checkin.token / trainerlink.pendingAuthContext.v1 / trainerlink.organisationInvitation.v1 / trainerlink.guestTrainerSave.current.v2 (sessionStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Resume a booking, check-in or requested sign-in/invitation route.
Retention
Until completed or the tab closes; sign-in and invitation context valid for up to 30 minutes

trainer-service-v2:pending-create:* / trainerlink.organisationInviteRequest.v1:* / trainerlink-admin-package-adjustment:* (sessionStorage)

Provider
TrainerLink
Category
Necessary
Purpose
Safely retry requested changes without duplicate execution.
Retention
Until completed, deleted or the tab closes

rotterdampt_lang / trainerlink.onboardingWidgetOpen.v2.* / trainerlink.dashboard-search-history.v1:* (localStorage)

Provider
TrainerLink
Category
Preferences
Purpose
Remember language, expanded/collapsed onboarding widget and up to five recent dashboard searches. Requires preference consent.
Retention
Until replaced, deleted or preference consent is withdrawn

trainerlink.analytics.* (localStorage / sessionStorage)

Provider
TrainerLink
Category
Share app usage
Purpose
Consent-based usage measurement and first public page context.
Retention
First page context valid for 90 days; other local values until deletion/withdrawal, tab values until the tab closes

ph_* / posthog* (cookies, localStorage / sessionStorage)

Provider
PostHog EU
Category
Share app usage
Purpose
Usage measurement after analytics consent.
Retention
Cookies up to 365 days; local values until deletion/withdrawal, tab values until the tab closes

trainerlink.sessionReplayOwner (localStorage)

Provider
TrainerLink
Category
Share app usage
Purpose
Binds a newly verified consent receipt to its original analytics account so the choice can be restored safely after reopening. This value alone grants no permission.
Retention
Until you withdraw or replace the choice or clear browser data; web consent is valid for 180 days

trainerlink.sessionReplayConsent / trainerlink.sessionReplayIntent / trainerlink.sessionReplayIntentOwner / trainerlink.sessionReplayPaused (sessionStorage)

Provider
TrainerLink / PostHog EU
Category
Share app usage
Purpose
Optional masked web recordings after an acknowledged Share app usage choice.
Retention
Until the tab closes

Vercel Speed Insights

Provider
Vercel
Category
Share app usage
Purpose
Performance measurements after analytics consent; no persistent browser cookie of its own.
Retention
Measurements as described in privacy policy

Service worker / Cache Storage

Provider
TrainerLink
Category
Necessary
Purpose
Load the web app and offer updates; does not authorize tracking.
Retention
Until cache update, web app removal or site data deletion

5. Privacy policy

For more information about how we process personal data and your privacy rights, see our Privacy statement.