Skip to content
BatesStamp
Volume I · Article 01

How BatesStamp Works

Filed · Technical Explainer
Reading · 4 min
Audience· Curious Users & IT Reviewers

BatesStamp adds Bates numbers to PDFs without ever uploading them. Below, the architecture in plain English — and the steps you can take to verify the privacy promise for yourself.

The thirty-second version

You drop a PDF onto the page. Your browser loads the file into memory using the standard File API. A WebAssembly-backed PDF library — pdf-lib — opens the document, draws the Bates number on each page, and re-saves it. The stamped PDF is offered to you as a download.

At no point does the file leave your computer. The browser's sandbox and the absence of any upload code make this technically verifiable, not merely a promise.

The privacy isn't a policy. It's a property of the architecture.

How to verify it yourself

Open your browser's DevTools (F12 on Windows, ⌘ + ⌥ + I on Mac), navigate to the Network tab, and stamp a file. You will observe the following.

  • Initial page load: the HTML, JavaScript, and font files load — these are the application itself.
  • During stamping: precisely zero requests.

For an even stronger demonstration, disconnect from the internet after the page loads. The tool keeps working — that is the strongest possible proof that nothing is being uploaded, because there is no network on which to upload anything.

What runs in your browser

  • pdf-lib — an MIT-licensed JavaScript library that reads, edits, and writes PDF files. Used in production by thousands of applications.
  • JSZip — bundles multiple stamped PDFs into a single archive for batch downloads.
  • Service Worker — caches the application shell so the page loads instantly on repeat visits and continues to function with no internet at all.

Sequential numbering across files

For discovery production, Bates numbers must run sequentially across an entire production set, never restarting at one. This is the default behavior: drop multiple files, and numbering continues from where the previous file left off.

When you need per-document sequences instead — for instance, when producing exhibits that each begin at EX 0001— switch to the "restart per file" mode in the options panel.

Limits

Because everything runs in your browser, the practical limit is your computer's available memory. Files up to a few hundred pages stamp in seconds on a modern laptop. Multi-thousand-page PDFs may slow your tab; if you encounter a memory wall, split the document with a tool such as Acrobat first, then stamp the parts in order.

BatesStamp is published as a static site. No analytics. No telemetry. No third-party scripts at runtime.
Composed in Fraunces & JetBrains Mono.