Cachety

A payslip preview crossed diagonally with "Rental application", the agency's name and the date, next to the purpose and recipient fields.

What is it?

Cachety watermarks PDFs and photos of documents (ID cards, passports, payslips, bank statements) inside your browser, and the file is never uploaded. The watermark states what the copy is for, who gets it and the date, so a copy sent to a letting agency for one rental application is worthless for anything else. Use it at cachety.com without an account, or host it yourself as a static site. It is licensed under AGPL-3.0.

Why is it interesting?

  • A network lock you can check: the Content-Security-Policy sets connect-src 'self', so the browser blocks any request to another domain, even one sent by a malicious script. The README suggests trying it in airplane mode. An automated test replays an exfiltration attempt on every change.
  • Pages rebuilt from pixels: the watermark is blended into the image, its layout changes on every copy, and editing the PDF won't remove it. The text layer, metadata and photo GPS coordinates are dropped.
  • Redaction that deletes: a blacked-out IBAN or tax number is removed from the file, not hidden under a black box.
  • One copy per recipient: up to 20, each in its recipient's name. Add {code} to the text and every copy also gets a short reference.
  • AES-256 PDF encryption, with a 12-word password from the BIP39 list that is wiped from the clipboard after one minute.
  • Phone formats, iPhone HEIC included, up to 200 MB per file. It installs like an app and works offline once loaded.

Use cases

  • Sending your ID card to a letting agency with "Rental application", the agency's name and the date across every page.
  • Sending the same payslip to three agencies as three copies, each in its recipient's name.
  • Blacking out the IBAN on a bank statement attached to a loan application.

Good to know

A watermark deters; it doesn't prevent. The project's security model says so: a recipient can photograph or retouch the page, and an AI erasing tool can repaint it, though it has to make up the text underneath. Retyping the document through OCR gets past any watermark, and only checking with the issuer catches that.

Self-hosting means redoing the headers. Bun builds the site into a static export. Each page keeps its CSP in a <meta> tag, so the network lock holds anywhere, but HSTS, frame-ancestors and COOP must be set on your server from out/_headers, a file GitHub Pages ignores. The official site runs on Cloudflare Pages, and the project acknowledges that a compromised deployment could serve different code. Under the AGPL-3.0, running a modified version as a service means offering its source code to your users.

Built for people asked to hand over their papers. The README cites France's Cybermalveillance.gouv.fr, which advises writing the purpose, recipient and date on the copy, and sets Cachety against watermark sites that upload your ID to their servers. Agencies can embed the tool in an iframe, limited to approved sites: as of 12 October 2026, partners.json lists none. For merging, compressing or running OCR on your own server, Stirling PDF bundles more than 50 tools.

Two days old, no release. The GitHub repository was created on 11 October 2026. Its history carries the 32 July 2026 commits of Filigrane Local, which Cachety modifies, then 26 commits on 11 and 12 October. There is no release and no tag. It is a personal project with a single maintainer.