Privacy
Your conversation never leaves your browser. This page says what that means precisely, and names the few things that do travel.
Last updated 2026-09-19.
The short version
We never receive your conversation. Reading the archive, hashing it, laying it out and writing the PDF all happen on your own machine, in the page you have open. Nothing about the chat is sent to us, because there is nowhere to send it: ChatExhibits is a set of static files, with no server that accepts uploads, no database and no log of what you processed.
A consequence worth stating plainly: we could not hand your conversation to anyone who asked for it, lawfully or otherwise, because we do not have it.
What stays on your device
Four small things are kept in your browser’s local storage so the software is usable across visits. They never leave the machine, and you can clear them at any time through your browser’s site-data settings.
- chatexhibits.entitlements: proof that you paid for an export: the checkout reference, the tier, the digest of the archive it covers, and the date it stops being regenerable. This is what lets you regenerate free for 30 days without an account.
- chatexhibits.pending: while you are away at Stripe, the SHA-256 digest of the export you are buying, so that when you come back we know which one your purchase covers. Stripe can only return a checkout reference to us, so this is written here instead of travelling with you. It is a hash of a file, not of a conversation, and it is deleted as soon as the purchase is recorded.
- chatexhibits.matters: the matters you create, each with its name, its Bates prefix, its counter width and where the next production starts, so numbering stays continuous.
- chatexhibits.firm: the letterhead you typed, to print on the certificate.
- chatexhibits.bates: the numbering prefix, its width and the number your next production should start at, so a second document resumes instead of reusing numbers the first one already used.
No message, media file or transcript is ever written to any of them. A test in the source refuses to build if that changes, and the same test bans IndexedDB and session storage outright rather than trusting the convention.
Cookies and measurement
The site sets no cookies, runs no analytics script, and carries no advertising or social tracker. Nothing follows you between pages and nothing profiles you. This is why you were never shown a consent banner: there is nothing to consent to.
What our host sees
Loading a page means requesting files from Cloudflare, Inc., which serves them. Like every web server it keeps ordinary request records (IP address, time, the file requested, the browser identifying itself) for a limited period, for security and to keep the service running, under its own policies as our processor. That is true of every website you visit, and it never includes anything about the contents of your chat.
Voice-note transcription downloads a speech model the first time you use it. That request goes to our storage bucket and is visible to it the same way any file request is, and the model is then cached in your browser so it is never fetched twice.
Paying
Payment is handled entirely by Stripe on Stripe’s own pages. We never see, receive or store your card number: what comes back to us is a checkout reference and whether it was paid. Stripe processes your payment and contact details as its own controller, under its own privacy policy, and it is the only third party involved in a normal purchase.
Voice notes, including the audio
Voice notes are transcribed on your own machine. A speech model runs in your browser, in a background thread, and the audio is never sent anywhere. There is no option to send it, no checkbox to tick and no accuracy tier that changes this: the promise covers the audio exactly as it covers the text.
The first transcription downloads the model itself, around eighty megabytes, from the public repository that publishes it. That request reveals your IP address to that host, the way requesting any file from any server does, and it carries nothing about your conversation: it asks for a public file by name. The model is then cached in your browser and never fetched again.
Other people in your conversation
A chat export is mostly other people’s words, and often their photographs, voices and phone numbers. We never receive any of it, so we are not processing it on your behalf. Whether you may use that material, in a filing or anywhere else, is between you and your lawyer, and remains your responsibility.
Your rights, and how little there is to exercise them on
Where the law gives you a right of access, correction, erasure or portability, it applies to personal data we hold. For your conversation, there is none. What exists is your purchase record at Stripe and, if you write to us, the email itself. Write to [email protected] and we will answer.
Data controller: Martin Ferret EI, 9 rue des Érables, 45250 Briare, France, SIREN 999 111 438. You may also complain to the CNIL, the French data protection authority.
Checking any of this
You do not have to take our word for it. Open your browser’s network panel and use the site: no request carries your archive. The digest checker and the export viewer work with your network disconnected, which is the shortest proof there is.