The short version

  • Every one of the 47 tools processes the PDF on your device. There is no server-side document code: the site is static files on Cloudflare Pages.
  • Three optional features move a document off your device, and only as ciphertext you sealed yourself: secure handoff links, signature requests and team review. The key travels in the link fragment, which browsers never send to a server.
  • Accounts, Teams and Pro exist so plans and shared settings can follow you. They handle identity and entitlements, never documents.
  • Telemetry is two things: Cloudflare Web Analytics (cookieless page views) and daily usage counts (an event name, a tool name, a number) that you can switch off in the footer. Neither carries an identifier.
  • You can check all of this yourself: the proof panel in the app logs every request the tab makes, the verify page shows how to confirm it in DevTools, and status.binderypdf.com watches the optional services every five minutes.

Data flow

Data flow: PDF bytes stay on your device; only sign-in, sealed ciphertext, hashes and counts ever leave it Your device the browser tab, or the desktop app PDF bytes, pages, text and imagesRendering, OCR, compression, conversionRedaction, forms, markup, page editsSigning keys and certificatesAES-256-GCM sealing before any handoffThe daily meter (IndexedDB) Documents never leave hereunless you seal them yourself for a link app files and engines (GET only) sign-in, plan, team settings sealed ciphertext + SHA-256 hashes hash of a signature value event name + tool name + count Cloudflare Pagesstatic hosting, no server-side document code Supabase (accounts and Teams)auth, row-level security, realtime marks Supabase Storage (package broker)handoff, signature requests, review — expiring Timestamp authority (DigiCert, via proxy)RFC 3161 — it never sees the document Usage counts and Web Analytics (Cloudflare)daily totals, no cookies, switchable off Stripe Checkout runs on stripe.com — you leave the app to pay and come back.

Every service Bindery talks to

ServiceWhenWhat it receivesWhat it never receives
Cloudflare PagesEvery visitRequests for the app's files: HTML, scripts, fonts, the vendored PDF engines, sample files. Standard access logs (IP address, user agent) under Cloudflare's policies.Any document. There is no upload endpoint.
Cloudflare Web AnalyticsEvery page viewA cookieless page-view beacon: URL, referrer, browser and performance timings. No cookies, no fingerprinting, no cross-site tracking.Identifiers, file names, tool inputs.
Usage counts (this origin, /_a)While you use the app, unless switched offDaily totals per event and tool — "merge opened 12 times today". The endpoint adds numbers to one row per day and stores nothing about the request. Honours Global Privacy Control and Do Not Track.Who you are, what the file was called, how big it was, what was in it.
Supabase AuthOnly if you sign inYour email address, or an identity token from Google or Microsoft, or a SAML assertion from your company's identity provider for Teams SSO.Documents, tool usage, file names.
Supabase databaseSigned-in useSubscription status, the daily job count for signed-in users (date and number only), team membership and shared settings, review marks (shapes and notes, not pages), the team audit log (who changed which setting).Documents. Every table has row-level security; browsers only ever hold a publishable key.
Supabase Storage (package broker)Handoff links, signature requests, team reviewA package sealed on your device with AES-256-GCM plus SHA-256 hashes of each version. The broker functions check plans and expiry; they cannot decrypt anything because the key was never sent to them.The key, the plaintext, or any way to derive them.
Timestamp authority (DigiCert)When you ask for a trusted timestampAn RFC 3161 request containing a SHA-256 hash of the signature value, forwarded by a small proxy so the browser can reach it. The reply is a signed token embedded in your PDF.The document, the signature itself, your identity.
StripeBuying Pro or TeamsYour payment details, entered on stripe.com. Bindery receives a signed webhook saying a subscription exists.Card numbers. They never touch Bindery or Supabase.
Google and MicrosoftOnly if you choose them to sign inA standard OAuth sign-in on their pages; Bindery learns your email address and a stable identifier.Anything about your documents. Bindery asks for no Drive or OneDrive scopes.
Your AI providerOnly if you configure oneThe excerpts you choose to send from "Ask your PDF", to the endpoint you configured (OpenAI, Groq, OpenRouter, Mistral, or a local Ollama). On-device models are downloaded from Hugging Face once and run in the browser.Anything, until you configure it. The default is on-device.
Phone scanOnly while you scan from a phoneThe phone and the desktop exchange connection details, then move the pages over a WebRTC data channel encrypted with the key from the QR code.Pages on any server.

How the optional services are built

  • Static site, strict CSP. The content-security policy allows scripts only from this origin (plus Cloudflare's analytics beacon), connections only to the services listed above, and no framing. Every engine — the PDF library, pdf.js, Tesseract — is served from binderypdf.com, not a CDN, so the code you run is the code we published.
  • Readable code. The scripts are shipped unminified. Open DevTools and read them; the proof panel in the nav is the first script to load so nothing can escape its log.
  • Row-level security everywhere. Every table is locked by policy; the browser holds a publishable key that only grants what the policies allow. Edge functions verify your session token and use the service role only inside their own code.
  • Brokers with expiry and caps. Packages expire, are removed when downloaded out, and are swept hourly by a scheduled job. Signature requests are capped at 3 a month on the free plan and 50 a day for anyone; handoff links at 100 a day; anonymous broker actions are throttled per minute; marks, audit entries and shared assets have size limits enforced in the database.
  • Signatures you can verify anywhere. Certification signatures are made with keys generated non-extractable in Web Crypto, or with a .p12/.pfx you decrypt on the device. The result is a standard PDF signature with the certificate chain embedded, which Acrobat, Preview and Bindery's own Verify tool can check.
  • Offline-capable. Once loaded, the app works without a network. If a feature needs a service it says so before it starts.

Retention

DataWhereKept for
Documents you processYour device onlyUntil you close the tab, or longer only if you turn on "keep recent outputs", which stores them in your browser.
Handoff packages (ciphertext)Supabase Storage1–30 days as you chose (default 7) or until the download cap, whichever first; expired packages are deleted on the next request and by an hourly sweep.
Signature-request packages (ciphertext)Supabase Storage1–60 days as you chose (default 14); the sealed package is deleted when the last signer completes, and the record holds only hashes and the event log.
Team review sessionsSupabase database30 days, then purged by a scheduled job; the document itself is a handoff package with its own expiry.
Daily job counts (signed in)Supabase database40 days. Anonymous counts live in your browser's IndexedDB.
Account, subscription, team membershipSupabase and StripeUntil you delete the account (email support) or cancel; Stripe keeps its own transaction records as the law requires.
Usage counts and Web AnalyticsCloudflareDaily aggregates with no identifiers; kept to see which tools matter.
Access logsCloudflare, SupabaseTheir standard operational retention.

Subprocessors

The companies that run infrastructure for Bindery, and the narrowest description of what they process.

  • Cloudflare — hosting, DNS, TLS, Web Analytics, the status page, the usage-count database, and email routing for support@.
  • Supabase — authentication, the database behind accounts and Teams, storage for sealed packages, and the edge functions that broker them.
  • Stripe — payments and subscriptions.
  • DigiCert — the RFC 3161 timestamp authority; receives a hash.
  • Google, Microsoft — only as sign-in providers, only if you pick them.
  • Your AI provider, Hugging Face — only if you turn on AI features; Hugging Face serves model files and receives no document data.

Verify it yourself

  • Open any tool, run a job, and press the green chip in the nav: the proof panel lists every request this tab made and the done screen says "0 uploads during this job".
  • Follow the verify page to confirm the same thing in your browser's Network panel, offline.
  • Watch status.binderypdf.com: the optional services are checked every five minutes, including a real timestamp request every hour.
  • Read the changelog: every entry is live on the site the day it appears.

Report a vulnerability

Email [email protected] with "Security" in the subject. Include what you found, how to reproduce it and what you think the impact is. Every report gets a reply from the person who wrote the code, and fixes are noted in the changelog with credit if you want it. Good-faith research against your own account and files is welcome; please do not read other people's data, run load tests against the brokers, or use the timestamp proxy as a free service. There is no paid bounty programme yet.

Changes to this page

This page is generated with the site, so the date at the top is the last time its content changed. Material changes to what a service receives are also announced in the changelog and reflected in the privacy policy.

Choose a PDF workflow