Conference Ink

Trust & Safety

Security & Data Protection

We built Conference Ink for people who record private conversations, sensitive lectures, and personal notes. Security is not an afterthought.

Last updated: June 15, 2026

Encryption in Transit

All data between your device and our servers travels over TLS 1.2+. We enforce HTTPS everywhere with HSTS headers.

Encryption at Rest

All data stored in Supabase Postgres and Supabase Storage is encrypted at rest using AES-256 on AWS infrastructure.

Data Isolation

Row Level Security enforces that every database query is automatically scoped to the authenticated user. No sharing between accounts is possible at the database layer.

Secure Infrastructure

We run on Supabase (AWS eu-central-1, Frankfurt), which holds SOC 2 Type II certification. No data is stored on servers we manage manually.

No Key Exposure

API keys for Deepgram and Anthropic are never embedded in the app binary. They are accessed via server-side Supabase Edge Functions and never reach the client bundle.

No AI Training on Your Data

Your recordings, transcripts, and notes are never used to train AI models. Anthropic's API terms prohibit use of API inputs for model training.

Authentication

Authentication is handled entirely by Supabase Auth, which implements industry-standard JWT-based session management. We do not build or maintain our own authentication system.

  • Passwords are never stored in plaintext. Supabase uses bcrypt hashing.
  • Session tokens are short-lived JWTs with automatic refresh.
  • Sign-up uses a typed email verification code inside the app.
  • Sign-in uses email and password, and password reset uses a secure email link.
  • All authentication events are logged for security audit purposes.

Row Level Security (RLS)

Every table in our database has PostgreSQL Row Level Security enabled. This is a database-level enforcement mechanism, not an application-level check.

What this means in practice: even if there were a bug in our application code that attempted to query another user's data, the database itself would return zero rows. The policy for every user-owned table is:

USING (auth.uid() = user_id)

This applies to all tables: sessions, transcripts, notes, bookmarks, photos, and summaries. The Supabase anon key exposed in the app has no elevated privileges beyond what RLS permits for the authenticated user.

Data Isolation Between Users

Each user's data is logically isolated. There are no shared storage buckets with public read access. File paths in Supabase Storage include a user-specific UUID prefix, and access is controlled by storage RLS policies that match the authenticated user's ID.

We do not have team collaboration features that allow cross-user data access. If such features are added in the future, they will be implemented with explicit per-resource permission grants, not blanket team access.

Third-Party Service Security

Supabase

SOC 2 Type II certified. Data hosted on AWS eu-central-1 (Frankfurt, EU). Supabase manages database backups, encryption, and infrastructure patching.

Deepgram (Cloud transcription)

Used only when transcription runs in the cloud after you stop recording, when you select cloud mode, or when import transcription cannot run on-device. Supported imported audio can be transcribed on-device, and video files are converted to audio on-device before any cloud path is used. When Deepgram is used, audio is transmitted over encrypted connections to Deepgram's EU endpoint (api.eu.deepgram.com), keeping transcription processing within the EU, under Deepgram's data processing agreement.

Google Cloud (Read-aloud voice)

When you choose read-aloud, the summary text is sent to Google Cloud Text-to-Speech (EU endpoint) to generate audio, under Google Cloud's data processing terms.

Anthropic (Cloud AI summaries & OCR fallback)

Used only when you choose the cloud summary engine (on-device summaries send Anthropic nothing), for summary translations and event reports, and as a rare OCR fallback. Only text, and in the OCR fallback a slide photo, is sent to Anthropic's Claude API; never audio. Anthropic's API usage policy prohibits use of API inputs to train foundation models, and processing is governed by Anthropic's data processing terms.

Stripe (Payments)

Payment card data is never transmitted to or stored by us. Stripe handles all payment processing with PCI DSS Level 1 compliance. We receive only payment metadata (plan, status, invoice IDs).

We Never Train AI on Your Data

Your recordings, transcriptions, notes, and summaries are used solely to provide the Service to you. We do not use your content to train, fine-tune, or evaluate any machine learning model.

When we send transcription text to Anthropic's Claude API, Anthropic's API terms of service explicitly prohibit Anthropic from using API inputs to train their models. This is a contractual protection on top of our own policy commitment.

What We Are Honest About

Conference Ink is not end-to-end encrypted. On iOS 26 the heavy processing runs on your iPhone by default (transcription, live translation, photo text recognition, and optionally AI summaries), but your synced content is decrypted on our servers so we can provide the cloud features you use: backup and sync, cloud transcription, cloud AI summaries, and read-aloud voices. Those features are not possible with end-to-end encryption, so we are transparent that they run server-side.

We minimise what we keep. Raw audio is removed from our servers within about 48 hours after transcription. A local copy stays on the recording device for about 30 days so re-transcription can work there, while your transcripts, notes, and summaries remain yours until you delete them. You can export or delete everything from the app at any time.

Responsible Disclosure

If you discover a security vulnerability in Conference Ink, please report it privately to:

hello@conferenceink.com

Please include a description of the vulnerability, steps to reproduce, and its potential impact. We will acknowledge your report within 48 hours and aim to release a fix within 30 days for critical issues. We ask that you do not publicly disclose the vulnerability until we have had an opportunity to address it.