Voxlibre

Security and anonymity

How Voxlibre protects reporters and reports.

A whistleblowing channel is only useful if people trust it. Trust comes from knowing how it works. So here it is.

For the reporter

No IP addresses, no device identifiers

We don't store the reporter's IP address, user agent or any device identifier. The reporting and follow-up pages set no cookies, load no analytics and make no third-party requests. We have even switched off our hosting provider's request logging for this service, because those logs keep request metadata.

Voice is disguised before it leaves the device

A voice report is pitch- and formant-shifted in the reporter's own browser. The reporter listens to the disguised version and chooses whether to send it. The original voice is never uploaded, so it isn't anywhere for us, you, or anyone else to recover.

The disguised voice goes to a transcription model with data collection refused

To produce a transcript, the disguised audio is sent to a transcription model through OpenRouter, with the provider's data-collection option set to deny. The real voice never goes anywhere.

Follow-up without identity

The reporter gets a case number and a secret key with about 100 bits of randomness. We store a hash of the key, not the key itself. Handler names are never shown to the reporter.

For the organisation

Encryption at rest, with a key per organisation

Every report field, message, note and recording is encrypted with AES-256-GCM. Each organisation's key is derived from a master key that lives only as a secret in the runtime, never in the database. An exported database or storage bucket is unreadable without it.

A full audit log

Every view, reply, note, status change and deletion is recorded with who did it and when.

Emails that say nothing

Handlers are emailed that a case needs attention. The email never contains the category, the content or the reporter's details.

Handler accounts

Invite as many handlers as you need, as administrators or case handlers. Every handler confirms their email address before they get case alerts. Two-step sign-in works with passkeys (fingerprint, face or device PIN) or an authenticator app, with one-time recovery codes, and an administrator can require it for the whole team. Ten wrong passwords lock an account for 15 minutes. Sign-ins, invitations, role changes and security changes are on an audit log your administrators can read.

Hosting

Voxlibre runs on Cloudflare Workers, with its database and file storage in Western Europe. Every page is served over HTTPS with a strict content security policy: no inline scripts, no third-party scripts, no embedding in other sites.

Reporting a security problem

If you find a vulnerability in Voxlibre, email hello@voxlibre.app. We'll reply, and tell you what we did about it.