How ImgShifter works
Most image tools online are server-side wrappers: you upload, they process, you download. ImgShifter flips that — the browser does the work for every common format, so your image never has to leave your device. Here's exactly how, with an honest list of what does and doesn't run locally.
The browser does the work
Canvas API
PNG, JPG, and WEBP conversions, plus crop and resize, run through the browser's built-in Canvas API. Decoding and re-encoding happen in your tab - no upload, no roundtrip.
WebAssembly modules
HEIC files decode via the heic-to module. AVIF encoding uses the @jsquash/avif encoder. Both are small WebAssembly binaries downloaded once and cached for offline use.
browser-image-compression
The compression slider is powered by the browser-image-compression library, running entirely in your browser with live preview and file-size statistics.
Conversion service (only when needed)
TIFF, RAW (CR2/NEF/ARW/DNG), and SVG vectorization need native libraries that don't exist in the browser. Those route to an encrypted endpoint, convert, and return the result. Originals are not retained beyond the conversion.
Don't trust us — verify it
Other “privacy-first” image tools still upload your file to a server. ImgShifter's browser tools don't. Here's a 30-second test you can run yourself, with nothing to install.
You are online
Turn off your network and watch this badge change — the tools keep working.
- 1
Turn off your network
Disable wifi or enable Airplane Mode. (You can also throttle to Offline in DevTools - Network tab.)
- 2
Stay on this page
No need to refresh. Open any browser-side tool - PNG to JPG, Compress, Crop, Resize.
- 3
Convert an image
Drop a file. The conversion finishes with zero outbound network requests. The result downloads from your own browser.
Prefer the technical view? Open DevTools → Network tab, run a conversion, and watch the request count stay at zero.
100% in your browser
These tools never make an outbound request with your image:
- PNG ↔ JPG, WEBP, AVIF
- JPG ↔ PNG, WEBP, AVIF
- WEBP ↔ PNG, JPG, AVIF
- AVIF ↔ PNG, JPG, WEBP
- HEIC → JPG, PNG (decoded locally via WebAssembly)
- Compress JPG, PNG, WEBP
- Crop, change aspect ratio, crop for Instagram
- Resize (single or batch with ZIP export)
Uses the conversion service
These formats need native libraries the browser doesn't ship with:
- TIFF → JPG, PNG
- RAW (CR2, NEF, ARW, DNG) → JPG
- SVG → JPG, PNG (rasterization)
- PNG, JPG → SVG (vectorization)
Files are sent over an encrypted HTTPS connection, converted, and the result is returned. Originals are not retained beyond the conversion.
Tech stack
- Next.js 15 — static-first rendering, fast first paint, PWA-ready
- React 19 + TypeScript — the application layer
- Canvas API — PNG, JPG, WEBP, crop, resize
- WebAssembly — HEIC decode (heic-to), AVIF encode (@jsquash/avif)
- browser-image-compression — quality slider, file-size estimation
- JSZip — bundling batch resize results
- Service Worker — offline fallback and PWA install
Want to see it for yourself?
Open PNG to JPG, Compress, or Crop. Disconnect from the internet, then run the conversion. The result downloads from your own browser - no network round-trip.