Skip to main content
Support

Browse by category

All categories
← All posts
Investigation May 20, 2026 · 3 min read

Where Loft draws the line — what stays local, what does not

The "everything is local" claim has edges. A few specific things on Loft cross the network because they have to. Here is the honest list of what does — none of it your file — and what never crosses at all.

By Khine 686 words Extractable lead
Where Loft draws the line — what stays local, what does not — hero illustration

Disclosure note on Loft’s network behaviour. Last reviewed 2026-05-29.

“Everything happens locally” is a simplification of a more precise sentence: all file processing happens on your device, and no file content ever crosses the network. This note draws the actual line — the things that do cross, none of which is your file, and the things that never cross at all.

What stays on your device, always

The bytes of any file you drop into a tool. The output any tool produces. In-progress edits, annotations, redaction marks, crop boxes. The text OCR pulls out of a page. Background removal, image filtering, video compression. None of these involves a network request that carries your data. The thirty-second DevTools check demonstrates it directly; the CSP post explains why the browser enforces it.

What does cross the network

Honestly enumerated. None of it is your file.

The tool code. When you first open a tool, the page downloads its code — the JavaScript and WebAssembly that do the work — from our content-delivery domain, then caches it. Same kind of request that loads any webpage’s code. Cached after the first visit.

A page-view count. When you open a page, an anonymous page-view is recorded — which page, nothing that identifies you. If your browser signals Global Privacy Control, it isn’t recorded at all.

A tool-run count. When a tool finishes, an anonymous event notes which tool ran, roughly how long it took, a coarse size-bucket for the input (rounded hard — think “nothing”, “small”, “medium”, “large”, never the real byte count), and whether it succeeded. No file content, no file name, no hash. Same GPC opt-out.

Optional model downloads. The first time you use OCR or the ID-photo background remover, the page fetches the model weights from public model repositories, then caches them. One-time download of code and weights — never an upload of your image.

A 3D decompression helper. The 3D and CAD viewers can fetch a small geometry-decompression helper (Draco) from a Google static host to open compressed model files. It decodes your model locally; it never receives it.

Sponsor checkout. The Support page embeds the payment processor’s checkout. Your email and card go to them, not to us. That page is the only place on the site that takes an email.

The CDN that serves the site. Like any hosted site, our provider’s edge sees your IP and the URL you requested. We receive aggregate counts from it, not per-visitor detail.

The exact allow-list of these destinations lives in the page’s Content-Security-Policy header — readable in DevTools in a few seconds, and walked through conceptually in the CSP post. The point of that header: anything not on the list is blocked by the browser.

What never crosses, in the negative

Stated as a negative because the negative is the load-bearing part:

  • No third-party analytics SDK embedded in the page — no Google Analytics, Segment, Mixpanel, Hotjar, or session-replay. Our own analytics is the two anonymous beacons above; we may query aggregate stats server-side, but nothing extra is loaded into your browser to watch you.
  • No advertising network embedded today. Ads are planned for listing pages; we’ll update this note the day they ship, and they won’t run on the tool surfaces.
  • No social-graph trackers — no Facebook pixel, no LinkedIn tag.
  • No file-storage service. Our object storage holds tool code, not user files. No S3 bucket, no third-party file sink.
  • No account database, because there’s no signup.

The honest summary

Things cross the network: code coming down, a couple of anonymous counters going up, optional model and helper downloads, the sponsor checkout. Your file is on none of those wires. If you want zero network activity at all after load, use a tool once online to cache it, then go offline — the service worker handles the rest.


The pillar at /docs/how-it-works/ is the canonical version. If you spot a destination on the live site this note doesn’t cover, tell us — the CSP header is the source of truth and this note should track it.