How OfficePad Actually Works
By George Doumouchtsis
"Your files never leave your device" is an easy thing for any site to claim. This page is about backing it up — what actually runs, what actually touches the network, and how to check it yourself.
Verify it yourself in under two minutes
Don't take this page's word for it. Open any tool — say Compress PDF — and before you drop a file in, open your browser's DevTools (F12 or right-click → Inspect) and switch to the Network tab. Load a file, run the tool, download the result. You will see requests for the page's own scripts and styles, and nothing else — no request carrying your file's bytes to any server, because there is no endpoint on the other end that accepts it. You can do the same thing with View Source: there is no hidden upload form, just a page that loads a JavaScript library and hands it the file you selected via your browser's own File API.
The two server routes that exist — and what they do
OfficePad's server has exactly two API routes, and neither touches a document, image, or spreadsheet:
/api/feedback— receives the text you type into the feedback form, nothing else./api/games/scores— stores a high score for the Flappy Paper game in the "Take a Break" corner of the site.
That is the entire server-side surface. There is no /api/upload, no /api/process, no file-storage bucket, because none of that machinery is needed — the work happens in the tab you already have open.
What is actually running in your browser
Every tool on OfficePad is built on an open-source library that runs as ordinary JavaScript (or WebAssembly) inside the page — the same kind of code a native app would use, just executing on your device instead of a server:
- pdf.js (Mozilla's PDF renderer, the same engine behind Firefox's built-in PDF viewer) — reads and renders PDF pages for viewing, splitting and converting to images.
- pdf-lib — builds and rewrites the actual PDF byte structure for merging, signing, organizing, and watermarking, without ever rasterizing the document.
- mammoth.js and docx — read an uploaded .docx into the document editor and write a new .docx back out on export.
- xlsx (SheetJS) and pptxgenjs — read and write .xlsx spreadsheets and generate .pptx presentations.
- Tesseract.js — a full OCR (text recognition) engine compiled to WebAssembly, running inside a background Web Worker in your tab to pull text out of scanned pages and images. This is a genuine machine-learning model executing on your device, not a call to a cloud OCR API.
- @imgly/background-removal — an on-device image-segmentation model (also WebAssembly) that identifies and removes a photo's background locally.
- heic2any, jszip, qrcode and jsQR — convert iPhone HEIC photos, build .zip archives, and generate/read QR codes, all client-side.
None of these are OfficePad inventions — they are established open-source libraries. What OfficePad does is wire them into one consistent, no-nonsense interface instead of routing your file through a server to do the same job.
What does touch the network
Two things, both unrelated to your files: Google Analytics (aggregate, anonymized usage — which tools get used) and Google AdSense (the ads that keep the site free), both gated behind consent where required. The feedback form sends whatever you choose to type, and only if you submit it. Full detail is in the Privacy Policy.
Why it is built this way
The alternative — uploading your file to a server, processing it there, then sending it back — is how almost every other free document tool works, and it is not because it is technically necessary. Every operation OfficePad offers can run entirely on the hardware already sitting in front of you. Building it that way means a contract, a passport scan, or a family photo never has to leave your device to get merged, converted, or compressed. See About OfficePad for the fuller story of why this was built in the first place.