Most "free online file tools" upload your file to a server, do the work there, and send it back. For a lot of tasks that is unnecessary and, honestly, a privacy smell. When I built Filuni (a free toolbox of 121 file tools), I made a rule: if the browser can do the job, the file should never leave the device. Here is how that actually works and where it breaks down.
What runs fully in the browser
For images, text and JSON, everything happens client-side. A few concrete examples:
Image compression / resize / crop — load the file into an <img> or createImageBitmap(), draw it onto a <canvas> at the target size, then export with canvas.toBlob(blob => ..., 'image/jpeg', quality). No upload, no round trip.
const bitmap = await createImageBitmap(file);






