Technical Walkthrough

How JadePDF processes PDFs in your browser

A 5-minute, no-marketing walkthrough of the actual code path when you use one of our 89 tools. Every step is verifiable in DevTools.

Architecture at a glance

You (Browser)
  │
  ├─[1] HTML loads from CDN  (jadepdf.com, Cloudflare Pages)
  │
  ├─[2] JS bundles: pdf-lib, PDF.js, tool code  (~1-2MB)
  │
  ├─[3] You pick a PDF file  →  File object in memory
  │
  ├─[4] pdf-lib / PDF.js processes the bytes  (CPU on your device)
  │
  └─[5] Browser offers Blob download  (no network round-trip)

The 5 steps, in detail

1

You open a tool page

When you visit a JadePDF tool (e.g. /merge), the static HTML loads from our CDN. No auth, no signup, no preflight requests to our servers.

Verify: Open DevTools → Network → reload. You'll see a single HTML request to jadepdf.com and a few JS/CSS bundles. No POSTs to api.jadepdf.com or similar.
2

JavaScript bundles load

Astro preloads the JavaScript bundles for the tool — pdf-lib (~200KB gzipped), PDF.js (~1MB for OCR tools only), and tool-specific code (~10-50KB). Code-splitting keeps the initial page fast.

Verify: DevTools → Sources → look for pdf-lib and the tool component. Code is open source and viewable.
3

You select a file

You pick a PDF using a standard <input type="file"> or drag-and-drop. The File object lives in browser memory only — never sent over the network.

Verify: DevTools → Network → pick a file. The Network tab should be empty (or only show static asset loads). The file never leaves your machine.
4

Processing happens in your browser

pdf-lib or PDF.js reads the file as a Uint8Array, modifies the PDF structure in memory, and produces a new Uint8Array. The CPU work runs on your device, not on a server. The Tools that need server processing (OCR, AI features) clearly label themselves as "Hybrid" or "Server" in the UI.

Verify: DevTools → Performance → record during a merge. CPU work shows up on "Scripting" or "Rendering", not on the network.
5

You download the result

The processed PDF is offered as a Blob download via a temporary object URL. No upload, no storage, no telemetry of file content. The URL is revoked as soon as the download triggers.

Verify: Watch the Network tab during a download. The file appears as a Blob (data: URL or a one-shot GET to a CDN). No PUT/POST to any server.

Tech stack

Layer Technology Why
Static site Astro 6 + React 19 islands Zero JS by default; ships only what each page needs
PDF manipulation pdf-lib (MIT) Mature, browser-native, no native deps
PDF parsing (OCR) PDF.js + tesseract.js Mozilla's PDF.js + WebAssembly Tesseract for scanned docs
Styling Tailwind CSS 4 Utility-first, tiny CSS bundle, no runtime
Hosting Cloudflare Pages Global edge, free tier, no server runtime to leak data
Analytics Plausible (self-hosted, no cookies) Aggregated page views only, no user IDs, GDPR-clean

See it in action

Pick any tool, open DevTools, and watch the network tab stay quiet.

Browse all 89 tools →