🔐 Encryption

All client personally identifiable information (PII) — email addresses, phone numbers, physical addresses, and emergency contacts — is encrypted using AES-256-GCM, the same standard used by banks and government agencies.

  • Data is encrypted at rest in the database. Raw PII is never stored in plaintext.
  • Data is encrypted in transit via TLS 1.3 on all connections.
  • Hashed lookup columns allow searching without decrypting the entire dataset.

🪪 Authentication

BallBot uses Google OAuth for sign-in. We never store passwords. Your Google credentials are handled entirely by Google — we only receive a secure token.

  • Optional TOTP-based multi-factor authentication (MFA) for an extra layer of security.
  • Session tokens are short-lived and automatically refreshed.
  • All authentication flows are handled by Supabase Auth, a battle-tested auth provider.

🧱 Data Isolation

Every table in BallBot is protected by Row Level Security (RLS) policies. This means Coach A can never see, query, or modify Coach B's data — even if someone found a way to bypass the application layer.

  • Tenant isolation is enforced at the database level, not just the application level.
  • Every query is automatically scoped to the authenticated coach's ID.
  • No shared tables or cross-tenant data leakage is possible.

📋 Audit Logging

Every action in BallBot is logged with a timestamp, the actor who performed it, and the IP address. This creates a complete, tamper-resistant audit trail.

  • Client record creation, updates, and archival are all logged.
  • Message sends, payment events, and waiver signatures are tracked.
  • Audit logs are retained and available for compliance reviews.

🇪🇺 GDPR Compliance

BallBot is built with privacy by design. We support GDPR rights including:

  • Right to erasure: Account deletion with a 30-day grace period. After 30 days, all data is permanently purged.
  • Data portability: Export all your data at any time in standard formats (CSV, JSON).
  • Consent management: Cookie consent banner on the marketing site. Analytics only load after explicit consent.
  • Data minimization: We only collect data necessary for the service to function.

🏗️ Infrastructure

BallBot runs on industry-leading infrastructure with enterprise-grade security certifications.

Vercel

Application hosting
SOC 2 Type II certified

Supabase

Database & auth
SOC 2 Type II certified

Stripe

Payment processing
PCI DSS Level 1

Responsible Disclosure

Found a security vulnerability? We appreciate responsible disclosure. Please report it to:

security@ballbot.coach