What reaches the network
No image data crosses the network. The photograph is decoded in the page, the frame is drawn over it in the page, and the finished file is written straight to your disk.
The picture you open
Choosing a file, dropping one on the panel or pasting one from the clipboard hands the browser a reference to something already on your device. The page turns that into pixels in memory, draws on them, and writes the result to your downloads folder when you ask it to. At no point is there a copy of the picture anywhere except in the tab.
When the tab closes, that memory goes with it. Nothing is written to local storage, nothing is kept in a database, and there is no cache of recent files to clear — because there is nothing to put in one.
One thing is fetched while you work, and it is a decoder rather than an upload. HEIC, the format an iPhone saves by default, is a format no browser will open on its own, so the first time you hand one over the page pulls down a WebAssembly decoder and runs it here. The request carries a filename for the decoder and nothing about your photograph, which stays in the tab and is read by the code once it lands.
Why this is structural rather than a promise
This site is published as static files. It has no API endpoint, no upload handler and no server-side code of any kind, which means there is no address an image could be sent to even if a mistake were made. A build check fails the release if a network call appears in any module that can reach pixels, and a second check fails it if a server route is added to the project at all.
What is measured
At the moment, nothing. No measurement property has been configured for this domain, so the published build contains no beacon, sends no request when a page opens, and holds no record that you were here. A placeholder token sits in the source where a real one will go, and the script it belongs to is simply not rendered while that placeholder is there.
The measurement that is planned is Cloudflare Web Analytics, chosen because it works without a cookie and therefore without a consent banner. Switched on, it would log the address of the page, the country the request came from and the site that referred it — no identifier kept between visits, no profile assembled across domains, and no way for it to observe a file you open, frame or save. The property would belong to this domain alone and would not be rolled into a view shared with another site.
The day that is switched on, this section is rewritten in the same release to say so in the present tense. It is not a promise about the future; it is a description of a build that currently measures nothing.
Advertising
This site is intended to carry advertising from Google AdSense, and it is not carrying any yet. The domain has not been through AdSense review, the switch that draws a unit is off in the build, and the consequence on every route is that no advertising code is requested and no advertisement — and no gap held open for one — appears anywhere.
Once it is approved and the switch goes on, the AdSense script will set cookies of its own and may use them to decide which advertisement you are shown. That part is an arrangement between you and Google, and Google's own ad settings are where it is adjusted; what this page hands them is the fact that a page was opened and nothing further. No unit will be placed inside the working area, and none of them could read your picture in any case — it is never sent anywhere for anything to read.
Changes and contact
If the way any of this works changes, this page changes with it in the same release. There is no mailing list to notify because there is no mailing list. Questions go to the team named on the About page.