Privacy Verification
Independently reproducible evidence · verified 21 September 2026
What "runs on your device" actually means
When you open a file in a WriteReady tool, your browser reads it into memory on your device using the browser's standard file API. All the work — merging, compressing, signing, converting, organising, editing, marking up, or password-protecting — is done there by JavaScript running in your browser. The finished file is handed back to you as a download generated from memory. There is no upload step, no account, and no server of ours that ever receives your document. When you close or refresh the tab, the working copy is gone.
Automated test — results
On 21 September 2026 we ran an automated browser test, using Chromium 141.0.7390.37 (the engine used by Google Chrome and Microsoft Edge), that opened each of the eight tools, recorded every network request the page made, and then deliberately tried to send data out to an external server (using both fetch and XMLHttpRequest). The tools also run in current Firefox and Safari.
| Tool | External requests on load | Attempt to send data to an outside server |
|---|---|---|
| Merge PDF | None | Blocked by the browser |
| Compress PDF | None | Blocked by the browser |
| Fill & Sign | None | Blocked by the browser |
| Image to PDF | None | Blocked by the browser |
| Manage Pages | None | Blocked by the browser |
| Edit PDF | None | Blocked by the browser |
| Mark Up & Notes | None | Blocked by the browser |
| Protect PDF | None | Blocked by the browser |
Result: across all eight tools, the pages made no external network requests, and every attempt to send data off the device was blocked by the browser. The only "external" address that appeared anywhere in the test was the outside server we ourselves tried (and failed) to reach. You can read the exact script we ran here: privacy-verification-tests.js.
What each tool loads from the network
Every tool page loads only its PDF engine, and only from WriteReady's own address — there are no third-party scripts, fonts, trackers, or CDNs. The engine files are:
- /libraries/pdf-lib.min.js — creates and edits PDF files (MIT licence)
- /libraries/pdf.min.js and /libraries/pdf.worker.min.js — Mozilla's PDF renderer, the same one Firefox uses (Apache 2.0)
- /libraries/qpdf.js and /libraries/qpdf.wasm — the encryption engine used by Protect PDF, compiled to run in your browser (Apache 2.0)
All of these are served from writeready.app itself. Nothing is fetched from another company's servers.
The lock is enforced by your browser, not just promised by us
Each tool page carries a Content-Security-Policy that tells your browser to allow connections only to WriteReady's own address and to block all form submissions. This means that even if our code were changed or a library were tampered with, your browser itself would refuse to send your document anywhere. That is what the "Blocked by the browser" result in the table above demonstrates.
Does any tool download extra files?
No. The tools download only the small engine files listed above, all from WriteReady. They never download a copy of your document, and they never upload one. (For the record: an earlier "OCR" tool, now removed from the site, used to download a text-recognition model to your browser — even then it never uploaded your document. No current tool downloads any model of any kind.)
Check it yourself — about five minutes
You don't have to take our word for any of this. Here are three checks anyone can do in their own browser.
Test 1 — watch the network (the definitive one)
Your browser can show you every request a page makes. Use it to confirm your document is never sent anywhere:
- Open any WriteReady PDF tool.
- Open your browser's developer tools. On a Mac, press Cmd + Option + I; on Windows or Linux, press Ctrl + Shift + I or F12.
- Select the Network tab.
- Clear the existing network log (the ⊘ "clear" button), and tick Preserve log so nothing is missed.
- Add a test PDF (or image) and process it — merge, compress, protect, whatever the tool does.
- Review the requests that appear after you selected the file.
- Confirm there are no uploads of your PDF or image, no POST requests, and no request whose payload contains your document. Click any request and open its Payload / Request tab to see for yourself — it's empty. On the tool pages you'll typically see no new requests at all.
The Network panel records every request a page makes and lets you inspect each one's details and payload — see the Chrome DevTools Network documentation.
Test 2 — turn off the internet
Open any tool and let it finish loading, then switch on Airplane Mode (or turn off Wi-Fi). Use the tool. It still works and produces your file — which would be impossible if your document had to reach a server.
Test 3 — read the page
Right-click → View Page Source. The page you see is the whole program — there is no hidden server component to inspect, and you can search it for anything that sends data.
File integrity (SHA-256)
So you can confirm that the files running on the live site are the exact files we tested, here are their SHA-256 fingerprints for this verification build. If a file on the site were altered, its fingerprint would no longer match.
Verification build: 21 September 2026
| File | SHA-256 |
|---|---|
| merge-pdf.html | 93fdaed95d477a6d0175229ffe013c511dc67524f114c9b01e68146e5fb0e86e |
| compress-pdf.html | 1270d24fd1ddf7ea516608e096ac2a7271cc1cdd2ce7161cde7ca01cbec3eb10 |
| fill-sign-pdf.html | 16dadabf847eb49c509ed4ff9b8abe3110ab997c41d339dbbd277b156eff6ac3 |
| image-to-pdf.html | 22f49eccd8cb5bb1ea03527616c15ccff80f9c707233f9186785cd2e071fb9d8 |
| manage-pages.html | 2a7a4372837b8244200d43ea3dda408174877bf78efedce44f383d6d31b29277 |
| edit-pdf.html | e745f076be4f6b1dc9938e79bf1b8457cb4506b00d9b0430c0a323a39eb715b5 |
| markup-pdf.html | 1df40317c244883e31b320b02be77fb3d12fa17f930511a6e7a8c32741ea830a |
| protect-pdf.html | 9f7ed2fff64c343ffb4405feb81af4430e5549289a791b071aff929220b010ac |
| libraries/pdf-lib.min.js | 0f9a5cad07941f0826586c94e089d89b918c46e5c17cf2d5a3c6f666e3bc694f |
| libraries/pdf.min.js | 5b5799e6f8c680663207ac5b42ee14eed2a406fa7af48f50c154f0c0b1566946 |
| libraries/pdf.worker.min.js | feabdf309770ed24bba31a5467836cdc8cf639c705af27d52b585b041bb8527b |
| libraries/qpdf.js | c0e8fe62e0c3385dd8cb5d6b613f74d87a4138a3a3343e2add45a067a14d0884 |
| libraries/qpdf.wasm | abd933f4ccace4f732999381b21aec8b7e3726f18a5b167fafd57f88dd440876 |
Scope
This verification covers the WriteReady PDF tool pages — the pages that handle your files. WriteReady's information pages (the home page and guides) may display ads and use our host's standard, privacy-respecting traffic statistics; those pages never receive your documents. Nothing on this page is a substitute for your own checks above, which you can repeat against the live site at any time.
Report a suspected privacy problem
If you ever believe a WriteReady tool is sending your data somewhere it shouldn't, please tell us and we will take it seriously. Email hello@onelastjob.tech.