Product AI notes Pricing For teams Developers & API Security Standards & compliance
Start free Sign in
Trust · Security

Nothing in the middle of your meeting.

Media travels browser to browser, encrypted with keys our servers never hold. Everything else — accounts, agendas, transcripts — stays in the region, behind controls we can show you.

Media encryption
DTLS-SRTP
Negotiated between browsers. RFC 3711.
Transport
TLS 1.2+ / HSTS
HTTPS only, permanent redirect, one-year HSTS.
Server-side recording
None
A recording exists only if a participant makes one.
Data residency
Middle East
Dedicated regions for Enterprise.
Transcript retention
14 days
Default; configurable per organisation.
Passwords
bcrypt
Hashed, salted, never reversible.
The media path

Your voice does not pass through us.

Codexal Meet is built on WebRTC. When two people join a meeting, their browsers perform a DTLS handshake with each other and derive the keys that encrypt the audio and video stream. That handshake happens end to end. Our signalling server carries the offer, the answer and the ICE candidates — the envelope, not the letter.

The practical consequence: there is no point in our infrastructure where a meeting could be listened to, because there is no point where the media exists in a form anyone could read.

01

Signalling

Browsers exchange session descriptions and ICE candidates over an authenticated HTTPS channel. This is call setup — who is calling, on what codecs — and never media.

02

DTLS handshake

The two browsers authenticate each other's certificate fingerprints, which were carried in the signalling, and agree a key. Neither key nor fingerprint private half ever reaches a server.

03

SRTP media

Audio and video flow directly between participants, encrypted with the agreed key. If the network forces a relay, the relay forwards the same encrypted packets blind.

Transport & browser

Everything else is HTTPS, and told to stay that way.

HTTPS only

Every request is served over TLS 1.2 or better. A plain HTTP request is answered with a permanent redirect before anything else happens, so no page and no API call is ever available in the clear.

HSTS

A Strict-Transport-Security header with a one-year max-age tells the browser to refuse plain HTTP to this domain for a year, which closes the gap on a first-visit downgrade.

Content Security Policy

A CSP restricts where scripts, styles, frames and connections may come from. Combined with X-Content-Type-Options and a strict Referrer-Policy, it limits what a successful injection could do.

Permissions policy

The camera and microphone are granted by the browser to this origin only, on the user's explicit consent, and the page declares that policy rather than relying on the default.

Session cookies

HttpOnly so script cannot read them, Secure so they never leave over HTTP, SameSite so another site cannot ride on them, and cookie-only sessions so no identifier is ever put in a URL.

No third-party trackers

There is no advertising network, no session recorder and no analytics vendor watching the meeting pages. Nothing to leak, nothing to disclose in a cookie banner.

Connectivity

Standards, so it works behind your firewall.

Connectivity uses the IETF stack a browser already implements: ICE to find a path between two endpoints, STUN to discover the public address, and TURN to relay when a symmetric NAT leaves no direct route.

TURN credentials are configured per deployment rather than shared publicly, and a relayed call is no less private than a direct one — the relay handles ciphertext.

  • ICE (RFC 8445). Candidate gathering and connectivity checks, so the best available path wins.
  • STUN (RFC 5389). Public address discovery for a direct peer-to-peer path.
  • TURN (RFC 8656). Authenticated relay for restrictive networks, carrying encrypted media only.
  • No plugin, no download. The browser's own WebRTC implementation does the work, and it is patched by the browser vendor, not by us.
Application security

The boring controls, done properly.

Mapped to OWASP ASVS 4.0 Level 2 and the OWASP Top 10.

Control
Implementation
Status
InjectionOWASP A03
Every database call uses a prepared statement with bound parameters. User input is never concatenated into SQL.
Implemented
Cross-site scriptingOWASP A03
Output is escaped at the point of rendering, and a Content Security Policy limits what an injected script could reach.
Implemented
Cross-site request forgeryOWASP A01
A per-session token is required on every state-changing request and compared in constant time; a mismatch is refused with 403 before any handler runs.
Implemented
AuthenticationASVS V2
Passwords are hashed with bcrypt through PHP's password API, verified in constant time, and never logged. Failed attempts are rate limited.
Implemented
Session managementASVS V3
HttpOnly, Secure, SameSite cookies; cookie-only sessions; regeneration on privilege change; identifiers never placed in a URL.
Implemented
Access controlOWASP A01
Every API route checks the session and the caller's relationship to the meeting. A meeting identifier is high-entropy and unguessable, and a private meeting still requires admission.
Implemented
SecretsASVS V6
Credentials and API keys live in environment configuration outside the web root, denied by the server, and never committed to source control.
Implemented
DependenciesOWASP A06
A deliberately small dependency surface — no front-end framework in the meeting room — reviewed on each release.
Implemented
Logging & monitoringOWASP A09 · SOC 2 CC7.2
Authentication events, admission decisions and CSRF failures are logged with enough context to investigate, and without meeting content.
Aligned
Third-party penetration testSOC 2 CC4.1
Internal review happens on every release. An external test of the meeting and signalling path is scheduled but not yet performed.
On the roadmap
Your data

What exists, where it lives, when it goes.

Held in the region

Accounts, meetings, agendas, transcripts and summaries are stored on servers in the Middle East. Enterprise customers can have a dedicated instance in a named region, which is how organisations with a residency clause in their own regulation usually buy.

Not recorded by us

There is no server-side recording. If a participant presses record, the file is written to that person's own device and the room shows a red indicator to everyone for as long as it runs.

Transcripts expire

Captions are transcribed in each participant's own browser and stored only so a summary can be written. The transcript is deleted after the retention period — 14 days by default, configurable per organisation.

Captions are opt-in

Each person decides whether their microphone is transcribed, can turn it off mid-meeting, and the room shows the change to everyone. Muting also stops transcription.

AI notes

What the model sees, and what it does not.

When a meeting ends, the text of the captions and chat is sent to a language-model provider that writes the summary, decisions and action items. It processes that text on our behalf under contract and does not retain it or train on it.

The model never receives audio or video — only text that participants chose to have transcribed. Turn captions off and there is nothing to send.

  • Text only. No audio, no video, no faces ever leave the peer-to-peer path.
  • No training. The provider processes under a data processing agreement that excludes training on customer content.
  • Named openly. The provider is listed with every other sub-processor on the GDPR page.
  • Summaries can be wrong. They summarise, they do not decide. Check one before you act on it.
Operations

How the platform is run.

Least privilege

Production access is limited to the engineers who need it, granted per person, and reviewed. There is no shared administrator login.

Backups

Daily encrypted database backups with periodic restore tests, because a backup nobody has restored is a hope, not a control.

Incident response

A documented procedure with a named owner and a severity scale. Affected customers are notified within 72 hours of us confirming a personal data breach.

Patching

Server and dependency updates are applied on a regular cycle, and out of cycle for anything with a known exploit.

Risk register

Maintained with owners and treatment plans, reviewed quarterly by engineering leadership under our ISO 27001 alignment.

Report a vulnerability

Write to info@codexal.co with the detail. We acknowledge within two working days, and we do not pursue researchers who report in good faith.

Read the full control register.

Every standard, its status, and what we actually run against it.