Skip to content

How it works: private, in-browser tools

95 of the 103 tools on 10.tools process your files with code that runs inside your browser tab, so the file stays on your device. This page explains how that works, which tools need our server and why, what we log, and how you can check all of it yourself.

Last updated October 20, 2026

What happens when you use an in-browser tool

  1. The page loads like any web page: HTML, styles and the code for the tool's controls. No processing code loads yet.
  2. You choose a file. The browser reads it into the tab's memory; it is not sent anywhere. This is the same mechanism a web mail app uses to preview an attachment before you send it.
  3. Only now does the tool download its processing library, usually a WebAssembly build of an established open-source program. It is cached, so the second time it loads instantly.
  4. The work runs in a Web Worker, a background thread of the same tab, so the page stays responsive and you can cancel at any time.
  5. The result is created in memory and handed to your browser as a download. When you close the tab, the file, the result and the library's working memory are discarded.

The libraries that do the work

These are the open-source projects behind the in-browser tools. When a library or model comes from a public CDN rather than from this site, the request downloads code or model weights; it never carries your file.

TaskLibraryDownloaded from
Read, render and split PDFsPDF.js (Mozilla) and pdf-libServed from this site; PDF.js font and character maps from jsDelivr
Lock and unlock PDFsqpdf compiled to WebAssemblyServed from this site
Word documents and spreadsheetsdocx, docx-preview and SheetJS's number formatterServed from this site
Compress and convert imagesSquoosh's codecs (MozJPEG, OxiPNG, WebP, AVIF) via jSquash, and pica for resizingServed from this site
Open iPhone HEIC photoslibheif compiled to WebAssemblyjsDelivr CDN
Read photo metadataexifrServed from this site
Convert, trim and compress video and audioYour browser's WebCodecs through Mediabunny; ffmpeg.wasm (single-threaded) when a codec isn't supportedServed from this site; ffmpeg core from jsDelivr or unpkg
Recognise text in images and scansTesseract.js with its language dataEngine and language data from jsDelivr
Remove backgrounds and upscale imagesTransformers.js running BiRefNet lite, ORMBG and Swin2SR modelsLibrary from jsDelivr; model files from Hugging Face
Find faces to blur or cropMediaPipe face detection (BlazeFace)Library from jsDelivr; model file from Google Cloud Storage
Transcribe speech and make subtitlesWhisper (tiny, base or small) through Transformers.jsLibrary from jsDelivr; model files from Hugging Face
Read text aloudYour system's voices through the Web Speech APIBuilt into your browser
Create ZIP filesfflateServed from this site
Open ZIP, RAR, 7z and TAR archiveslibarchive compiled to WebAssembly (libarchive.js)jsDelivr CDN
Convert CSV, Excel and JSONSheetJS and PapaParseServed from this site
Record your screen, voice or webcamYour browser's MediaRecorder and screen-capture APIs, with Mediabunny for MP4 and MP3Built into your browser; served from this site
Compare two textsjsdiffServed from this site
Fonts for signatures, added text and memesOpen-licence fonts from Fontsource and Google FontsjsDelivr CDN and Google Fonts

Large models are downloaded only by the tools that need them, the first time you use them, and your browser keeps them for next time: the background remover fetches between 44 and 224 MB depending on the model and your device, the transcriber between about 40 and 250 MB depending on the model you pick. Each tool shows the download size.

Tools that use our server, and why

Some jobs cannot be done inside a browser: checking a website from the outside, redirecting a short link, or watching a site while your computer is off. Those tools say “Processed on our server” on the page instead of “Runs in your browser”, and they send only what the job needs.

ToolWhat is sentWhat is kept
Mock REST APICreate fake JSON endpoints with your own method, path, status, delay and body or generated fake data, served with CORS from our server for prototyping and tests.endpoint JSON kept until you delete it or 7 days pass without a request
Website speed & SEO checkerAudit a public page for on-page SEO, from titles, headings and canonical tags to robots.txt, hreflang and structured data, plus Core Web Vitals; our server fetches the URL and stores nothing.the URL is fetched on demand and results are not stored
Open Graph & meta tag previewerSee how a link looks on Google, Facebook, X, LinkedIn, Slack, Discord and iMessage; our server fetches the public page to read its tags, or write new tags in your browser.the URL is fetched on demand and nothing is stored
Robots.txt & sitemap generatorWrite robots.txt rules for search and AI crawlers, test any URL against them, and build an XML sitemap from a URL list in your browser or from a crawl our server runs on your site.crawl results are not stored
What's my IP & DNS lookupSee the public IP address your connection uses, IPv4 or IPv6, with an approximate location when our host provides one, and look up DNS records for any domain; our server reads your request and stores nothing.your IP is shown to you and not stored
Business name generatorGet brandable business name ideas from your keywords, made in your browser, and check whether matching domains are free; domain checks and optional AI ideas run on our server.keywords are used to generate ideas and check domains and are not stored
Link shortenerTurn a long URL into a short link with a QR code and see clicks by day, referrer, device and country; links and daily click totals are stored on our server.links kept until you delete them, daily click totals for 12 months
Uptime monitorCheck a website or API from our server every few minutes, track response times and uptime, and get a Slack, Discord or webhook alert when it goes down.monitors kept until you delete them, check history for 30 days

A few in-browser tools also have an optional online lookup, such as reading a web page's title and author to fill in a citation. The note next to that field says what is sent and where; everything else on the page works without it.

What we log

  • Request logs. Like every website, our server records each page request: the time, the address requested, your IP address, your browser's user agent and the response status. They are deleted after 14 days. In-browser tools send no file data, so there is none to log.
  • Usage statistics. With your consent where the law requires it, Google Analytics receives events such as “file selected”, “processing finished” or “download” with the tool name, a size range like “1–10 MB”, how long the job took and a short error code if it failed. File names, file contents and exact sizes are never sent.
  • Rate limits. Server tools count requests per IP address in memory for 60 seconds to stop abuse; the counters are not written to disk.
  • Your settings. Preferences and drafts (an invoice, a resume, a note) are saved in your browser's local storage on your device. We cannot see them, and clearing your browser data removes them.

Advertising on free pages is served by Google and is governed by the consent choice you make in the banner. The full policy is on the privacy page.

Check it yourself

You don't have to take our word for it. Any desktop browser can show you every request a page makes:

  1. Open a tool, then open the developer tools with F12 (or Cmd + Option + I on a Mac) and choose the Network tab.
  2. Clear the list, choose a file and run the tool.
  3. Look at the requests. You will see the library or model being downloaded (files ending in .js, .wasm or .onnx) and analytics pings, but no request whose payload contains your file. Click any request and open its Payload tab to confirm.
  4. For a stronger test, run the tool once, turn off your Wi-Fi, and process a second file in the same tab. It still works, because nothing needs the network after the library has loaded.

Limits of running in the browser

Your device does the work, so a phone takes longer than a laptop on a large video, and very large files are limited by the memory your browser allows a tab, typically 2 to 4 GB. Each tool page lists its free limits in numbers. The Pro plan raises them; it does not move processing to our servers.