Skip to content
TernTern home

Privacy

Written from the code, not from a template. Every claim here describes something that is actually implemented.

Last updated

The short version

  • Files you convert are uploaded to our server, converted, and deleted. The source file goes as soon as the output exists; the output goes automatically after the retention period shown on the tool page.
  • No account is required, so we do not hold a name, an email address or a password for you.
  • Uploaded files are never used to train any model, and are never shared with anyone.
  • Analytics and advertising use cookies, and you can decline them.

Files you upload

This is the part that matters most, so it is described exactly rather than reassuringly.

  • Before upload. Your browser opens the file locally to check that it is a valid, unencrypted EPUB and to read basic details such as chapter count. Files that fail this check are never sent anywhere.
  • In transit. Uploads travel over HTTPS.
  • At rest. The file is written to disk under a randomly generated identifier with no relationship to your filename, your address or your session. Identifiers are 128 bits of randomness and are not sequential or guessable.
  • During conversion. The file is opened in an isolated renderer that has no network access and no script engine, so nothing inside a book can call out or execute.
  • After conversion. The source EPUB is deleted as soon as the PDF is produced. The PDF is deleted automatically after the retention period, whether or not it was downloaded. A separate periodic sweep deletes anything left behind by a crashed job.
  • Access. Downloading requires a secret token that is separate from the job identifier, so a shared or leaked status link does not expose the document.

Server logs

Operating the service produces logs. They record what happened, not who you are:

  • File sizes, page counts, chapter counts, durations and error codes.
  • Filenames are recorded only as a length and an extension, because a filename can contain a real name.
  • Addresses used for rate limiting are stored as a salted hash, never in full.
  • No part of a file’s contents is ever logged.

Analytics and advertising

The site uses Google Analytics to understand which pages and tools people use, and may use Microsoft Clarity to see where interfaces confuse people. It is funded by advertising, which may be served by Google.

  • Analytics and advertising storage are denied by default in the EEA, the UK and Switzerland until you accept, using Google’s Consent Mode.
  • You can decline from the banner on any visit, and the choice is remembered in your browser.
  • Product events record what happened — a file was selected, a conversion completed, an error occurred — with sizes and durations grouped into ranges rather than exact values.
  • No filename, book title, author name or file content is ever sent to analytics. This is enforced in code, not by convention.

Google’s handling of the data it collects is governed by its own policies. Blocking third-party cookies, or declining from the banner, does not affect any tool on this site.

Cookies and local storage

WhatWhyHow long
Theme preferenceRemembers light or dark modeUntil you clear your browser
Consent choiceRemembers whether you accepted analytics and advertisingUntil you clear your browser
Analytics cookiesSet by Google Analytics, only after consent where requiredSet by Google
Advertising cookiesSet by the ad network, only after consent where requiredSet by the network

The first two are stored in your browser and never sent to our server.

Your rights

Because no account exists and files are deleted automatically, there is normally nothing held about you to access, correct or delete. If you believe otherwise — for example if you sent us a message — contact us and we will tell you exactly what we hold and remove it on request.

This service is not directed at children under 13, and no age or identity information is collected.

Changes to this policy

If the way files are handled changes, this page changes with it and the date below is updated. The policy is written from the implementation rather than the other way round.