The short version. Almost every tool on bakepdf runs inside your browser. Your PDFs are not uploaded, not queued, not converted on a server and not deleted an hour later — they are never in our possession at all. There is no promise to keep here, only an architecture.
Chat with PDF, Summarize and OCR cannot run locally, because they need a language model. For those three, the text extracted from your document — or, for OCR, images of the pages — is sent through our Worker to OpenRouter, which routes it to a model provider. We do not train on it and we do not keep it; the provider’s own retention policy is theirs, and if a document is sensitive enough for that to matter, do not use those three tools on it. Every other tool on the site is unaffected.
One PBKDF2 pass over your password produces 64 bytes. The first half wraps your library’s encryption key and stays in your browser; the second half is sent to us as proof of who you are. They are independent halves of the same output, so the proof we store tells us nothing about the key. A recovery code, shown once at signup, wraps the same key a second time — we keep a hash of that code, never the code.
The consequence is real and we will not dress it up: if you forget your password and lose your recovery code, your library is gone. Not withheld — gone. We have nothing to recover it with.
If you scan the QR code in the signature panel, the drawing your phone makes has to reach the computer somehow. It is posted to a single-use record in our database, held for at most fifteen minutes, and deleted the moment your computer collects it. It is a PNG of a signature and nothing else — the document it will be placed on never leaves your machine. Signing with a mouse or a stylus does not touch our servers at all.
Handled entirely by Polar, who are the merchant of record. We never see or store a card number. We store the Polar customer and subscription id so we know which plan you are on.
Privacy-preserving page counts, with no cookies and no cross-site tracking. If the analytics id is not configured, no script is loaded at all.
Delete any stored file from your account page. To delete the account itself, email us and it goes, along with everything attached to it.