A file toolbox with no server in the middle
PocketPDF exists because —merge two PDFs— should not require an account, a cookie banner, and a stranger—s server. Everything here runs on your device, and the limits are stated as plainly as the features.
The short version
I ran into the same wall everyone does: a document needed merging, and every site that offered to do it wanted an account, a card, or a copy of the file on a server I could not see. That is a strange deal for a task a browser can do by itself.
PocketPDF is the site I wanted to find. It runs from a single desk in Kasur, Pakistan. There is no company behind it, no investor, no growth team, and no newsletter. The tools are free because the work happens on your hardware, not on a billable server. If the site saves you an afternoon, that is the payment it was built for.
How it actually works
- Your browser reads the file from your disk.
Using the same File API that powers every upload button — except here the file never goes anywhere. It becomes bytes in the page—s memory.
- A local engine transforms those bytes.
JavaScript and WebAssembly libraries do the work: pdf-lib builds PDFs, pdf.js renders them, ffmpeg.wasm handles video, tesseract.js reads text from scans.
- The result becomes a download.
The page creates a new Blob and asks your browser to save it. The original file is never modified in place.
That is the entire architecture. There is no upload, no queue, no —processing—— that depends on someone else—s computer. You can verify it: open the browser—s Network tab, clear it, process a file, and watch that no request carries the file. The how it works page walks through that test in detail.
What is here now
Merge, split, crop, rotate, compress, sign, protect, unlock, sanitize and convert. Real encryption for passwords, real crop boxes for cropping, and a clear limit where one exists.
JPG, PNG, WebP, GIF, BMP, TIFF, SVG and HEIC conversion, target-size compression, resizing, cropping and EXIF removal. Format limits are stated on the page, not hidden.
Video and audio, OCR, ZIP archives, QR codes, date maths, unit conversion, text and developer utilities. All of it local, all of it without a login.
The rules this site runs on
- No uploads. There is no file-upload endpoint in the code. The contact form opens your own email app; it does not submit to a server.
- No accounts, no meters, no watermarks. Nothing to log into, nothing to count, nothing stamped on your output.
- No analytics, no advertising, no third-party fonts or scripts. The only outside request is the page itself from the host. There is no pixel, no heatmap, no ad auction.
- No fake claims. —Unlimited—, —lossless— and —removes any password— are easy words to print and hard words to defend. The tools say what they actually do.
- No password recovery. If you protect a PDF here, the encryption is real. Losing the password means losing access — that is the point of encryption, not a support gap.
How it is paid for
There is no paid tier, no advertising and no data sale. The site is a static bundle served by free hosting, and the expensive part is the time spent building and testing it. That is a deliberate trade: a small site with no revenue has no incentive to collect anything from you. If it grows beyond that, the funding model will be described here before it changes anything about the tools.
Who it is for
Students merging lecture notes before an exam. A freelancer whose client sent a 12 MB scan and asked for something smaller. An accountant who cannot put a client—s bank statement on a random website. A teacher making QR codes for a worksheet. Someone on a laptop with 8 GB of RAM who does not want another desktop app. The common thread is not technical skill — it is not wanting to hand over the file.
What is under the hood
The tools are assembled from open-source engines, all shipped with the site. Credit where it is due:
- pdf-lib and pdf.js — building and rendering PDFs (Mozilla—s renderer, the one inside Firefox).
- @pdfsmaller/pdf-encrypt and pdf-decrypt — AES-256 and RC4 password protection, implemented locally.
- ffmpeg.wasm — the video and audio engine, a full ffmpeg compiled to WebAssembly.
- tesseract.js — OCR, with language data loaded only when selected.
- JSZip and fflate — archives and compression; SheetJS — spreadsheets.
- marked and turndown — Markdown both ways; jsdiff — text comparison.
- piexifjs — EXIF metadata; heic2any — iPhone photos; UTIF — TIFF; qrcode-generator, jsQR and JsBarcode — the code tools.
All of them are permissively licensed and served from this domain, never from a CDN at runtime. That is one less company learning which tools you use.
Where the honest limits are
- No full PDF editor. There is no Acrobat-style layout editor here. Cropping, signatures, watermarks, page numbers and metadata are the honest subset; rewriting a complex page layout is a different class of software.
- Office files to PDF (Word, Excel, PowerPoint in — PDF out) needs a full office rendering engine. The text-only PDF — Word converter exists; the reverse is absent rather than badly imitated.
- Gigabyte-scale video will hit your machine—s memory before it hits any software limit. For feature-length footage, a desktop editor is the right tool.
- OCR is not perfect. Handwriting, low-resolution scans and unusual layouts will produce errors. It is useful, not magical, and the language data has to be downloaded the first time.
- Encryption protects the file, not the recipient. A password-protected PDF can still be screenshotted by someone who is allowed to open it. The password guide explains what the lock does and does not cover.
A note on the guides
The guides are written by the same person who builds the tools. They are not ghostwritten SEO filler, and they do not pretend a tool is better than it is. Where a recommendation depends on your situation — upload speed, print requirements, a portal—s exact file limit — the guide says so.
Something missing?
If a tool misbehaves, a guide is wrong, or a job is missing from the toolbox, the contact page has a real address attached to a real person. Feature requests are read, and the ones that fit the no-upload rule get built.