// Vertrouwen & data

Saai met opzet. geen drama.

De primitives die je niet wilt zien op een statuspagina, maar elke dag van je platform vraagt: data binnen de EU, idempotente betalingen, harde tenant-isolatie en een open exit. Geen marketing-bingo — engineering-keuzes.

  • /01EU-only

    Data blijft in de EU.

    Postgres in Frankfurt (Supabase EU), hosting op Vercel met EU edge-routing, statische assets in Amsterdam, e-mail via Resend EU. Geen replicatie naar VS-regio's, geen sub-processors buiten de EU. AVG vanuit de architectuur, geen vinkje achteraf.

    Postgres EU · Vercel EU · Resend EU

  • /02Idempotent

    Webhooks die niets dubbel doen.

    Stripe-events worden één keer verwerkt op event-id, ook bij dubbele aanlevering. Boekingen lopen via een atomische transactie — nooit twee leden op de laatste plek. Refunds, dispute-flips en credit-rollbacks lopen door dezelfde safe path.

    Stripe webhook idempotency keys

  • /03Tenant-scoped

    Strikte multi-tenant isolatie.

    Elke request wordt opgelost naar exact één tenant via subdomein. Owner, staff en trainers hebben aparte rollen — trainers zien alleen hun eigen klanten en lessen. Stripe-keys zijn per tenant, niet gedeeld. Sessies via JWT met refresh-rotatie en httpOnly cookies.

    subdomain → tenant resolver

  • /04Open exit

    Wegmoeten kan altijd.

    Volledige CSV-export voor leden, abonnementen, credits en boekingshistorie. Payload REST + GraphQL API blijft 30 dagen bereikbaar na opzegging. We maken geen vendor lock-in — als je weg moet, krijg je elke rij mee, gestructureerd, gedocumenteerd.

    CSV + REST + GraphQL

Verwerkersovereenkomst (AVG art. 28) op aanvraag. Sub-processors zijn publiek gedocumenteerd in onze privacyverklaring. Statuspagina, datalekprocedure (72u-melding) en disaster-recovery plan beschikbaar voor Studio en Custom plannen.

Startjouw gym.

Geen demo nodig om te beginnen. Self-service aanmelden, maandelijks opzegbaar, EU-gehost, jouw merk vanaf dag één.