Skip to main content
Support

Browse by category

All categories
← All posts
Essay May 4, 2026 · 6 min read

"But the page is on the internet" — yes, the code, not your file

A common point of confusion: if the tool is online, isn't your file online too? No. The code travels over the internet once, runs on your machine, and your file never enters the network. Here is the distinction that matters.

By Khine 1,120 words Extractable lead
"But the page is on the internet" — yes, the code, not your file — hero illustration

A reader emailed me to ask a fair question. If Loft is online — if I open it in a browser, if it lives at a URL — doesn’t that mean my file is also online when I use it? I thought I had a good short answer ready. When I tried to write it down, it kept sliding into terms the question itself was trying to clarify. So I’m going to take the long way around. Bear with me.

The question is fair because the internet, for most users, is a single concept. You’re either “on” it or “off” it. You connect to Wi-Fi to be on it; you toggle airplane mode to be off it. From that vantage point, anything happening in a browser is happening “on the internet” — because the browser is the thing that connects you to it.

That mental model gets you through almost every daily interaction. It breaks when the thing you’re doing inside the browser isn’t actually crossing the network. And a surprising amount of what browsers do, in 2026, isn’t.

Think of how a calculator app works on your phone. You downloaded the app once — that download crossed the network. You use the app many times — each use doesn’t cross the network. The numbers you punch in aren’t “on the internet” just because the app came from an online source. The app is on your phone. The numbers are on your phone. The operation runs entirely on your phone.

A modern browser-side tool works almost exactly the same way. The code that does the work was downloaded over the network when you loaded the page (or, if it was cached from a previous visit, not even then). After it loads, the code is running on your device. The file you drop into the tool is read by the local code, into the local memory, processed by the local code, and written back out as a downloadable result — all locally. The network is involved in the same way it was involved in delivering the calculator app: at install time, once.

The calculator analogy isn’t perfect. A native app gets installed explicitly; a browser tool gets re-downloaded every time you visit unless the service worker cached it (which it usually does). The install boundary in the browser is fuzzy in a way it isn’t on your phone. But the part that matters for the question — is my file traveling over the network? — is the same in both cases. The file isn’t. The code was.

So when someone asks “isn’t my file online because the page is online,” the honest answer is: the page came from online; your file didn’t. Two different things crossed the network at two different moments, only one of them mattering for what you might worry about.

I should be careful here, because there is one piece of network activity during a Loft tool session that I’d be misleading you to omit. Two small analytics beacons fire during a session: one on page load, one after a tool runs. The post-tool beacon carries the tool’s slug, a duration in milliseconds, your file size rounded to coarse size buckets (rounded hard — never the real byte count), and a true/false flag for whether the tool succeeded. Neither carries the file contents, the file name, or the file hash. The pillar’s section 9 breaks this down field by field. If your browser signals GPC, the event is not recorded.

That beacon is the kind of thing the original mental model (“everything happens online”) would catch correctly. Some bytes do travel during a session. Those bytes are not the file. If you opened the Network tab and watched, you’d see them — and you’d see they’re tiny, and you’d see they aren’t carrying anything that looks like the document you were processing.

The mental shift the question is reaching for is which bytes travel, not whether any do. A page that loads code from a CDN and sends a 200-byte beacon is doing something fundamentally different from a page that uploads your 12 MB tax return to a processing server. Both involve network activity. They are not the same thing.

I keep thinking about how to make this clearer for a non-technical reader without leaning so hard on the calculator analogy that the analogy itself starts to mislead. The calculator example helps because it’s familiar. It breaks if you push it past about three uses — a real native app has filesystem permissions the browser doesn’t, the install boundary is harder, the update flow is completely different. But for the narrow question of where do the inputs and outputs live, the analogy holds. Numbers in a calculator: on the device. Files in a browser-side PDF tool: on the device. Code in both cases: delivered from somewhere else.

When you check this for yourself, you can use the same thirty-second DevTools verification from earlier in this series. The interesting thing isn’t just “does my file upload” — though that’s the headline question — it’s also “which bytes do travel.” A browser-side tool’s Network tab shows code coming down, a small beacon going up, and your file staying invisible in either direction. A cloud tool’s Network tab shows the same code-and-beacon traffic plus a file-sized POST to a processing endpoint. The architectural choice is right there in the panel, no marketing claims required.

The reason I find this question worth a full post is that “isn’t it online” is a category mistake the entire industry has been quietly benefiting from. As long as users believe that any browser tool must necessarily upload their file, every operator who actually does upload gets a free pass — the user assumes it had to. Once you’ve internalised that some browser tools run the work locally and some don’t, the question shifts from “is this safe?” to “which one is this?” The DevTools check answers the second question in thirty seconds. The first question is unanswerable without it.

I haven’t solved that category mistake by writing one post. The shift in mental model happens for individual users, slowly, as they realise the answer to “where is my file right now” can be “on your device” even when the page lives at a URL. Each user who picks up that shift is one more person who’ll ask the right question the next time they reach for a PDF tool. That’s the goal of this series, in fewer words than I usually write it.


The pillar at /docs/how-it-works/ is the canonical version of all of this. If you’ve read this far and you still want one more page that pulls everything together, that’s the page.