Privacy
Every NoAdsTools tool runs in your browser. The files you open, your photos, PDFs, resumes and everything else, are read from your device and processed there. So is anything you type into a tool, including the text and WiFi passwords you put into the QR generator. None of it is uploaded, queued on a server, or held anywhere for us to look at.
That claim is easy to make and rarely proved, so this page is the proof. It lists what each tool downloads, when it downloads it, what stays in your browser afterwards, and how to check all of it yourself.
The short version
- Your files never leave your device, and neither does anything you type.
- There are no ads, no analytics, no telemetry, and no cookies.
- There is no account, and nothing to sign up for.
- Every file the site downloads comes from this domain. There is no third-party CDN.
- The whole thing is open source under the AGPL, so you can read the code that makes these claims true.
What "nothing is uploaded" does and does not mean
It means the contents of your files are never sent anywhere. No image, PDF, resume, or piece of text you put into a tool is transmitted off your device.
It does not mean your browser makes no requests at all. It has to make some, or you would not be reading this page.
When you load a page here, a web server sends you HTML, CSS, JavaScript and fonts, and that server sees the request, including your IP address, the way every web server on the internet does. Most tools also download a processing engine from this same domain, and only when you actually use the feature that needs it. Those downloads are listed tool by tool below.
The distinction that matters: code comes down to your device, and your data never goes up.
What each tool downloads, and when
Everything in this table is served from noadstools.com. Nothing here is fetched from a third party. "On first use" means your browser downloads it once, then caches it.
| Tool | What it downloads beyond the page | When |
|---|---|---|
| Color Palette | Nothing at all. | Never. After the page loads it fetches nothing. |
| Resume Builder | Nothing at all. | Never. The PDF is made by your browser's own print engine. |
| Cover Letter Generator | Nothing at all. | Never. Same print-based PDF as the resume builder. |
| QR Code Generator | The qrcodegen encoder, about 42 KB. | With the page, so the tool works with the network off. |
| Compress Video | The mediabunny video engine, about 660 KB. | When you add a video. The encoding itself uses your browser's built-in codecs; nothing else is fetched, so once the engine has arrived you can disconnect and keep compressing. |
| Remove EXIF | JSZip, about 97 KB. | Only if you click "Download ZIP". |
| Crop Image | JSZip, about 97 KB. | Only if you click "Download all (ZIP)". |
| Favicon Generator | JSZip, about 97 KB. | Only if you click "Download package". |
| Resize Image | The pica resizing library, about 53 KB. JSZip, about 97 KB. | pica when you resize. JSZip only on "Download all (ZIP)". |
| Compress Images | One encoder per format: mozjpeg about 246 KB, WebP about 338 KB, AVIF about 3.3 MB, oxipng about 160 KB. JSZip, about 97 KB. | Each encoder only the first time you compress to that format. AVIF is by far the largest, which is worth knowing on mobile data. |
| Convert Image | The same four encoders and JSZip as above. | Same pattern: only the encoder for the format you are converting to. |
| HEIC to JPG | The libheif decoder, about 1.1 MB. JSZip, about 97 KB. | libheif when your first file lands. JSZip only on "Download ZIP". |
| Find Duplicate Photos | The libheif decoder, about 1.1 MB. JSZip, about 97 KB. | libheif only if you add a HEIC photo. JSZip only on "Download unique set". |
| Image to PDF | jsPDF, about 420 KB. | Only when you click "Create PDF". |
| Merge PDF | pdf-lib, about 511 KB. | When you add a PDF. |
| Watermark PDF | pdf-lib, about 511 KB. | When you add a PDF. |
| Split PDF | pdf-lib, about 511 KB. JSZip, about 97 KB. | pdf-lib when you add a PDF. JSZip only when a split produces more than one file. |
| Sign PDF | pdf.js, about 1.73 MB. pdf-lib, about 511 KB. | pdf.js when you open a PDF. pdf-lib when you apply the signature. |
| PDF to JPG | pdf.js, about 1.73 MB. JSZip, about 97 KB. | pdf.js when you open a PDF. JSZip only when you download more than one page together. |
| PDF to Text | pdf.js, about 1.73 MB. The Tesseract OCR engine, about 22 MB, English data included. | pdf.js when you open a PDF. Tesseract only when a page has no text layer and needs OCR. A normal digital PDF never triggers it. |
| Photo Editor | The largest surface on the site. See the detailed list below. | Each piece only on first use of that specific feature. |
A note on the three PDF viewers
Sign PDF, PDF to JPG and PDF to Text all use pdf.js to display pages. For documents that use unusual text encodings, pdf.js also fetches character maps and font data, again from this domain and only for the documents that need them. So even after the engine has arrived, opening an unusual PDF can cause another request. It is still only code, and still only from here.
Photo Editor in detail
The photo editor bundles several optional features, and some of them are large. Each downloads only when you first use that feature.
- Self-hosted Onest fonts, with the page.
- JSZip, about 97 KB, on your first "Export queue (ZIP)".
- jsPDF, about 420 KB, on your first PDF export.
- The libheif decoder (which packages strukturag/libheif), about 1.1 MB, on your first HEIC or HEIF import. It asks first.
- Background removal: the @imgly/background-removal ISNET model plus ONNX Runtime Web kernels, up to about 118 MB in total, on your first "Remove background". It asks first. Your browser takes only the kernels it can actually run, so a CPU-only browser never downloads the GPU variant. These files ship with the site rather than coming from a third-party model host.
- Face detection: a MediaPipe BlazeFace ONNX export redistributed by Qualcomm AI Hub Models under Apache-2.0, about 78 KB of graph plus about 517 KB of weights, on your first "Auto-detect faces". It asks first. It reuses the ONNX runtime already vendored for background removal, so there is no second runtime download.
- Text detection: Tesseract.js v7 (Apache-2.0), about 174 KB of JavaScript plus roughly 20 MB of WebAssembly variants, of which your browser downloads only the one matching its SIMD support, plus the gzipped English
eng.traineddatamodel at about 1.9 MB. On your first "Detect text". It asks first. Recognized text stays on your device.
Four things in the editor ask before they download: HEIC decoding, background removal, face detection and text detection. Spending 20 MB of someone's data plan without asking is not a decision a website should make on its own.
What this site never does
- No ads, and none are planned.
- No analytics or telemetry. No Google Analytics, Plausible, Fathom, Mixpanel, gtag, or fbq.
- No cookies, and no fingerprinting.
- No third-party CDN. Not even Google Fonts, which logs the IP address of every visitor who loads a font from it. The fonts here are served from this domain.
- No accounts, no email collection, no newsletter.
- No upload of your files, and no "save to the cloud" feature to be tempted by later.
- No selling or sharing of data, because there is no data to sell.
Metadata in the files you get back
Photos from a phone or camera carry EXIF metadata, which often includes the GPS coordinates of where the shot was taken. PDFs carry document properties. Since that metadata is a privacy question in its own right, here is what the tools do with it.
Remove EXIF exists to strip it deliberately, and it does so by editing the file's bytes rather than re-encoding, so the pixels are untouched.
Several other tools remove it as a side effect, because re-encoding an image does not carry the old metadata across. That applies to Compress Images, Convert Image, Crop Image, and Resize Image whenever they actually re-encode.
One exception is worth knowing, because it works against you. If you give Resize Image a photo that is already smaller than your target, it keeps the original file exactly as it is rather than running it through a pointless lossy re-encode. That is better for image quality, but it means the file keeps its EXIF and GPS data. Those images are labelled "kept native size" in the results. If stripping location data is the goal, use Remove EXIF rather than relying on a resize to do it for you.
On the PDF side, Merge PDF, Split PDF, Watermark PDF and Sign PDF all build a fresh document, so the source file's document properties are not carried into the output.
What is stored in your browser
The site uses localStorage, never cookies. Everything it stores stays on your device and is readable by you.
Most tools store preferences only. Your language, theme, and per-tool settings live under noadstools_lang, noadstools:settings:global, and noadstools:settings:<tool>. No file content is ever written to any of them.
The resume builder and cover letter generator store your documents. They have to, or a refresh would lose your work. Resumes live under noadstools:resume:* keys and letters under noadstools:letter:*. These stay in this browser on this device until you delete them or press "Clear my data" in the tool. They are never transmitted. Because they are tied to one browser, clearing your browsing data or switching browsers will lose them, which is why both tools offer an Export .json file you keep yourself.
One tool can read another tool's saved documents, and exactly one does. The cover letter generator has a "Use my details from a resume" option that reads the noadstools:resume:* keys saved by the resume builder in this same browser, so it can copy across your name, email, phone and location instead of making you type them twice. It only reads them. It never writes to or deletes a resume, and the control is hidden entirely when you have no resume saved. Nothing is sent anywhere in either direction.
The "Clear my data" buttons are scoped to their own tool. Clearing your letters removes only the noadstools:letter:* keys and leaves any saved resume alone, and the reverse is also true.
The photo editor also stores consent flags so it does not ask twice about the same large download: noadstools_bgremove_consent, noadstools_heic_consent, noadstools_face_detect_consent, and noadstools_text_detect_consent_v1. Alongside those it keeps a few editor preferences under noadstools:settings:photo-editor, noadstools_target_size, noadstools_upload_ready, and noadstools_watermark. None of them contain image data.
You can inspect or delete all of it through your browser's site-data controls, or in DevTools under Application, then Local Storage.
Requests that only happen if you click
- The source repository on GitHub, if you click a "Source" link.
- The Ko-fi tip page, if you choose to support the site.
- Nothing else.
How to verify this yourself
You do not have to take any of this on trust, and you should not have to. Checking takes about a minute.
- Open any tool on this site.
- Open your browser's developer tools and select the Network tab. In Chrome, Edge and Firefox that is F12, or Cmd + Option + I on a Mac.
- Use the tool normally. Add a file, run it, download the result.
- Read the list of requests. You will see files coming from noadstools.com. You will not see a request carrying your file anywhere.
Two things worth knowing while you look. Requests with the "Fetch/XHR" or "Script" type that arrive when you first use a feature are the engines listed above. And the useful column is the size and direction of the request: a tool that uploaded your photo would have to send a request as large as the photo, and there is not one.
If you want to go further, the entire site is open source and you can read the code that does the work.
If you find something here that does not match what your Network tab shows, that is a bug worth reporting in the issue tracker.
Translations
The interface is translated into 15 languages with the help of AI tools. Some of those translations will be imperfect. If you find a bad one, the issue tracker in the source repository is the place to report it.
Open source
NoAdsTools is licensed under the GNU AGPL v3.0. The source is at github.com/Dan512/NoAdsTools.
That license is the reason the privacy claims on this page are checkable rather than promotional. A site that processes your files on a server can tell you anything about what it does with them. A site whose code runs in your browser cannot, because you can read it and watch it run.
Support this site
There are no ads and nothing to buy. If the tools are useful, you can leave a tip on Ko-fi. That is entirely optional and nothing is withheld if you do not.