ToolsGuru

Methodology

How ToolsGuru keeps files on your device (and how to check)

A practical explanation of client-side processing on ToolsGuru: File APIs, Canvas, Web Crypto, pdf-lib, what still goes over the network, and how to verify it in DevTools.

Published 2026-09-17 · 11 min read · ToolsGuru editorial

Most ‘free online converters’ work like this: you upload a file, a server you do not control stores it long enough to transform it, and you download the result. That architecture is convenient for the operator. It is a poor fit if the file is a tenancy scan, a payroll CSV, or a photo of a child’s birthday cake you never intended to donate to a log file.

ToolsGuru is built the other way around. The page loads JavaScript once. After that, the bytes you drop onto a tool are read in the browser, transformed in memory, and offered back as a downloadable Blob. This article is the methodology behind that claim — including the honest limits, because ‘privacy’ pages that omit ads, analytics, and memory limits are marketing, not documentation.

What ‘client-side’ means on this site

When you choose a PDF on the joiner, the browser’s File API gives the page a File object. JavaScript (often with the pdf-lib library) parses those bytes in the tab’s memory, concatenates pages, and builds a new Uint8Array. The download is a Blob URL created on your machine. A similar path exists for images: an <img> or createImageBitmap decode, a Canvas draw, and a toBlob encode. Hashes use Web Crypto’s subtle.digest. UUIDs use crypto.getRandomValues.

None of those steps require ToolsGuru’s server to see the payload. The server’s job is to ship the HTML, CSS, and JS that implement the tool — the same way a word processor’s installer ships code without reading your novel.

  • File and Blob APIs — read and write without a multipart upload of your document.
  • Canvas / ImageBitmap — resize, convert, crop.
  • Web Crypto — SHA-2 hashes and strong random values.
  • pdf-lib — merge, split, rotate, watermark, delete pages, inspect some metadata.
  • JSZip — pack a batch of converted images for download.

How to verify it yourself in ten minutes

Trust should be checkable. Open a tool you care about (the PDF joiner is a good example). Open DevTools → Network. Filter to Fetch/XHR. Drop a uniquely named file such as `harbour-nda-17sep.pdf`. Convert or merge it. You should not see a POST of that PDF to toolsguru.net or to an unknown converter API. You will still see the original page assets, fonts, analytics, and the AdSense script — those are the site loading, not your NDA leaving.

A second check: after the page has loaded, toggle the browser’s offline mode and try a text tool (word counter, slug generator). If the UI still works, that logic is not round-tripping to a server for each keystroke. File tools that need a codec only present in the page’s JS will also keep working offline once cached; a first visit still needs the network to download that JS.

What you will still see on the network

Google Analytics (G-XM3R1YQDEY) and AdSense (ca-pub-4216497195683218) load from Google’s domains. They do not receive your PDF bytes from our converter code, but they are third parties. If your threat model is ‘no Google scripts at all’, use a browser with those requests blocked, or use offline desktop tools. We would rather say that than pretend an ads-funded site is a Faraday cage.

What client-side processing does not magically solve

Memory: a tab is not a 64 GB workstation. A hundred 48-megapixel HEIC files can freeze a phone. Split the batch. Screenshots of ‘the tab died’ are a limitation, not a secret upload.

Metadata: converting via Canvas often strips or rewrites EXIF. That can be good (GPS) or bad (copyright fields you wanted). Check the output if metadata is the point — use the PDF metadata viewer for PDFs.

Covering text with a white rectangle in the PDF editor is not redaction. The glyphs may still sit in the file. We say so on that tool’s page because overselling would be the actual privacy failure.

localStorage (online notepad, flashcards) stays in that browser profile. It is not end-to-end encrypted cloud. Anyone with the profile can read it. Clearing site data deletes it.

Editorial rule we use when we describe tools

We do not claim certifications we do not have. ToolsGuru is an independent publisher of browser utilities, not a law firm, bank, hospital, or university. Calculator outputs are arithmetic. Citations are formatters. Health numbers are crude population metrics.

When a tool must touch the network to be useful (status codes, sitemap fetch, bundle size lookup, some crawls), we describe that as a fetch you initiate to a URL you typed — not as ‘we store your crawl’. CORS and robots.txt will still stop you, which is correct behaviour.

If we get a correction (a codec that does not work in Firefox, a rounding rule that misleads), we update the tool page. Email contact@toolsguru.net with the URL and what you observed.

Tools used in this guide

More guides

Written by the ToolsGuru operators. No guest-post network, no scraped competitor pages. Corrections: contact@toolsguru.net.