Privacy & Data Handling

DriveState is a per-tenant Performance Learning platform. Learner activity is stored against the tenant that paid for it, isolated from every other tenant, and never used to train any public AI model. This page summarizes how data moves through the system, what we keep, and what we don't.

At a glance

1. Architecture & data flow

The browser talks to a web application hosted on Vercel, which in turn talks to a managed Postgres database (with vector search for content retrieval) hosted on Supabase. Learner audio is captured in the browser and streamed directly to Google's Gemini Live API; the AI counterpart's reply comes back through the same channel. When the avatar is on, the avatar's spoken text (and only the text) is forwarded to LiveAvatar, which returns a rendered video stream to the browser.

Vercel and Supabase are both SOC 2 Type II certified. The default deployment region is the United States; an EU deployment is available for tenants with data residency requirements.

2. Tenant isolation

Every record (learner, session, turn evaluation, mastery score, authored content) is tagged to its owning tenant. Database row-level security ensures no query, including a malformed or malicious one from the application, can return rows across tenants. Each tenant's data is fully partitioned: no shared learner pool, no shared mastery pool, no shared content library.

3. Authentication & access

The privileged database credential (the one that can bypass row-level security) is stored only as a server-side environment variable and is read solely by server-side functions. The browser never sees any database credential, and no database key is shipped in the client bundle.

The current demo environment is additionally protected by an access-code gate that an unauthenticated visitor cannot bypass: every backend API route is independently enforced server-side, not just in the UI. Production deployments integrate with the tenant's identity provider (SAML, OIDC, or SCORM-tunneled SSO) so only authorized employees can sign in.

4. What we store about a learner

The learner record itself is intentionally minimal:

Per session, we store:

We do notstore demographic data, performance reviews, compensation, records of the learner's real-world work, or any data about the real people the learner will eventually interact with. DriveState is a practice environment; it has no awareness of the learner's real-world activity.

5. What we do not store

6. Third-party processors

DriveState relies on a few external services, each receiving only the minimum data needed to do its job.

Google: Gemini Live (audio I/O) + Gemini Embeddings (retrieval)

Processes learner audio in real time and returns the AI counterpart's reply. Also embeds query text for content retrieval. Per Google's published Generative AI API terms, content sent through the API is not used to train or improve Google's foundation models. The Google API is the only AI provider in the live conversation loop.

HeyGen: LiveAvatar (video rendering)

Receives plain text (the AI counterpart's next utterance), renders the avatar speaking that text, and streams the video back. Receives no learner identity, no email, no transcript, and no audio. LiveAvatar is invoked only when the avatar is enabled; in audio-only mode it is never called at all.

Supabase: Postgres database + asset storage

Stores tenant data (learners, sessions, mastery, authored content) and tenant asset files (coach videos, content snapshots). Encrypted at rest with AES-256; encrypted in transit with TLS 1.2+. SOC 2 Type II certified. The database is per-deployment, never shared across tenants other than at the schema level.

Vercel: application hosting

Serves the application bundle and runs the serverless API routes. Sees request metadata (URLs, headers, response codes) for operational logging but does not persist learner transcripts or mastery data. SOC 2 Type II certified.

Make.com: assessment provisioning (only when an assessment module is enabled)

For tenants that enable a module built on an external assessment (today, Everything DiSC® from Wiley), Make.com automates the provisioning: it passes the learner's name and email to the assessment provider and retrieves the location of the finished report. It receives no DriveState learner activity: no transcripts, no mastery scores, no session data.

7. Assessment integrations (optional, per tenant)

Some tenants enable a module that draws on an external, professionally administered assessment. Today that is the Everything DiSC® profile from John Wiley & Sons. When a tenant uses it:

8. Reporting boundary, retention & deletion

Coaching and reports show proficiency, never the conversation.What a learner said while they were still getting a skill wrong is not shown to their manager, their organization, or anyone else on the tenant's side. Every tenant-facing surface — the learner roster, the proficiency dashboards, the weekly team report — is built from mastery scores and per-turn evaluation states (the green / yellow / orange / red results), never from the words of the conversation. That boundary is what makes a practice space genuinely safe to be bad in.

Tenant data is retained for as long as the tenant is active. On contract termination, all tenant rows can be deleted in cascade (sessions, turn events, mastery, content assets, content chunks, asset files), leaving no residual data in our systems. The deletion is idempotent and operates entirely within the tenant scope.

The words of a conversation are kept in two forms, with different lifetimes, and neither is ever shown to the tenant as text:

Improving the product with de-identified data.To find and fix errors in our software and coaching content and to raise quality, we may review, export, and retain conversation data with the learner's identity removed — no name, no email, no account or learner identifier, and nothing that links a conversation back to an individual person. De-identified data is used only for our own quality assurance and product improvement, is never shown to the tenant, is never re-associated with an individual, and is not used to train third-party AI models. A tenant that prefers its practice data be excluded from this entirely can request that in its data processing addendum.

Individual learner deletion (right-to-erasure) is supported at the application level: a learner's sessions, turn events, and mastery scores can be wiped in one call while preserving the tenant's aggregate analytics. Learner deletion is already an in-product action available to administrators.

9. Encryption

10. How we use AI, specifically

The AI components in DriveState are all in the live conversation loop, never in the background:

11. Open items, configurable per tenant

A few choices are configurable rather than fixed:


Last updated: 2026-07-23. Questions or a request for a tenant-specific DPA? Email terry@1010development.com.

Alpha · actively developed ↗