The short version
Scissor Image never receives your photos. When you open a tool, your browser downloads the website and an image engine. When you choose a file, the browser decodes it into pixels in the memory of your tab, the engine processes them on your own processor, and the result is handed back to you as a download. Closing the tab erases everything.
What runs where
Decoding (reading JPG, PNG, WebP, AVIF and, in Safari, HEIC) is done by your browser, the same way it shows images on any page.
The image engine that converts, resizes, crops, rotates, compresses to a target size and removes metadata is written in Rust, using the open-source image library, and compiled to WebAssembly. It runs in a background worker so the page stays responsive.
The server only hosts the site's files. It has no upload endpoint for images, so there is nothing that could accept one. A small customer care service on the same domain receives only what you choose to send, such as feedback or a waitlist sign-up, plus anonymous page counts.
Verify it yourself
Open your browser's developer tools, switch to the Network tab and use any tool. You will see the page's own files load, small anonymous page-count requests to /_care/, and no request carrying your image. You can also disconnect from the internet after the page has loaded: every tool keeps working.
The site also sends a strict Content Security Policy that tells your browser to block the page from contacting any other server, so even a mistake in our code could not send your photos elsewhere.
Works offline, installs like an app
After your first visit, a service worker stores the site and engine in your browser's cache, so the tools open and work with no connection. In Chrome or Edge, choose Install from the address bar. In Safari, choose Add to Dock (Mac) or Add to Home Screen (iPhone and iPad).