Raspy

How to edit photos online without uploading them

Published · 4 min read

"Online photo editor" usually means your photo goes to someone else's computer, is edited there, and comes back. It does not have to. A browser can decode, edit and encode a photo on its own, and an editor built that way has no upload to worry about. The difficult part is telling which kind you are using.

Two kinds of "online"

A server-side editor uploads the file, runs the edit on the server, and streams the result back. The upside is that the server can be as powerful as the company likes, which is how heavy AI features work. The downside is that your photo is now stored, at least briefly, by a third party, subject to their privacy policy and their security.

A client-side editor downloads the editor's code to your browser and does the work there. The photo is read from your disk into the page's memory and never leaves it. The upside is privacy and speed on a slow connection. The downside is that everything has to fit in your device's memory and run on its processor.

Many editors are a mix, processing simple edits locally and sending the photo away for anything heavy. A privacy policy that says photos "may be processed on our servers" usually means exactly that.

How to check for yourself

  1. Open the editor in Chrome, Edge or Firefox and press F12 to open developer tools. Choose the Network tab.
  2. Open a photo in the editor and make an edit.
  3. Look for a request with a size close to your photo's, or any POST request that appears after you picked the file. If there is none, the photo stayed on your device.
  4. For a stronger test, load the editor, then switch on aeroplane mode before opening the photo. A local editor keeps working.

What Raspy does

Raspy is client-side by construction rather than by policy. There is no server code that accepts an image; the deployment serves static files. Decoding uses the browser's own image decoder, or a WebAssembly decoder loaded into the page for HEIC. The adjustments run as a WebGL shader on your graphics chip. Export encodes in a worker thread on your device. The photo lives in memory for as long as the tab is open, is not written to disk, and is not placed in the offline cache. The service worker that makes the app work offline refuses to store any image response, so even the cache cannot hold a photo.

The only third parties are two visit counters, Google Analytics and PostHog, which count page loads and never receive anything about a photo or an edit. Both are off by default in the EU, EEA, UK and Switzerland and can be turned off anywhere from Settings. The source is public, so each of these claims can be checked in the code rather than taken on trust.

What a local editor cannot do

Honesty cuts both ways. Running on your device means no AI background removal trained on a server farm, no shared cloud library, and a hard limit set by your device's memory. Raspy caps imports at 75 MB and 60 megapixels and will shrink an export if the graphics chip cannot allocate a full-size canvas, telling you when it does. For the everyday edit, which is exposure, a crop and a straighten, that is plenty. For compositing and generative tools, a server-side editor is the right tool, and the trade-off is worth knowing about before the photo is uploaded.