Compress images with no internet
Three steps. Load the page once on any connection, then disconnect — the compressor keeps running.
Load the page once
Open sukatapp.com on any connection. The HTML, scripts, HEIC decoder, AVIF decoder, and ZIP packager all cache locally during this first load. Nothing else is fetched after that for normal compression.
Go offline — or stay online, your call
Switch to airplane mode, walk into a tunnel, or stay on Wi-Fi. Sukat behaves identically either way. The only network call in the entire app is a decorative global counter that fails silently without affecting your conversion.
Drop, target, download
Drop a JPG, PNG, WebP, HEIC, AVIF, or GIF. Type a KB or MB ceiling. Click Convert & Download. The binary search runs through the Canvas API in your browser and saves the result locally — no round-trip.
When “no internet” is the constraint
Most “free online image compressors” are a thin wrapper over an upload + server-side process. Kill the connection and they die. Here is where that fails the user.
- In-flight photo editing. Long-haul flights with satellite-only Wi-Fi that’s metered to the gigabyte, or no Wi-Fi at all. Tidy up the shots taken during boarding so they’re ready to send the second the plane lands.
- Remote-site work. Research expeditions, oil rigs, ships at sea, mountain weather stations — anywhere the connection is satellite, intermittent, or technically nonexistent. The tool just runs.
- Developing-market connectivity. On a metered mobile plan, a 4 MB upload is a noticeable bite. Compressing locally before sending shifts the burden off the data cap entirely.
- Firewalled enterprise networks. Many corporate networks block upload-based image tools as a data-exfiltration risk. A page that runs locally has nothing for the firewall to inspect, so it passes through.
- Airport and hotel Wi-Fi. Captive portals that allow basic browsing but throttle or block file uploads. Slow, often insecure, and the wrong place to send anything sensitive in the first place.
- Travel photographers needing PWA-like reliability. Add Sukat to the home screen and it opens like a native app, available in airplane mode for the entire trip — no app-store install, no account.
Genuinely offline, not “offline-ish”
Plenty of compressors claim “works offline” and quietly fall over the moment the upload step needs a server. Sukat’s architecture removes that step entirely.
100% client-side from day one
There is no Sukat compression server. The binary-search-to-target-size logic, the HEIC and AVIF decoders, the live quality preview, the ZIP packager — all of it ships with the page and executes through the Canvas API in your browser. The architecture is the feature.
Loads once, then no network needed
The entire app is a static bundle delivered from Cloudflare’s edge. After the first load, the browser caches it like any other website. You can refresh the tab in airplane mode and the page still opens.
Verifiable in airplane mode
Don’t take the marketing at face value. Open Sukat, switch to airplane mode, then drop an image — it still compresses. Or open DevTools ’ Network tab while online and watch: no upload request is ever made.
No PWA install required — but supported
The page works offline as a normal browser tab — just bookmark it. For one-tap launching, tap Share › Add to Home Screen on iOS, or the menu › Install app on Android. Either way, no app-store account, no native install.
HEIC, AVIF, GIF all decode locally
The decoders for modern image formats are bundled with the page, not loaded on demand. iPhone HEIC photos, AVIF screenshots, and animated GIFs all open in airplane mode without any “converting…” spinner that turns out to be a hidden server call.
Batch and ZIP still work offline
Drop a dozen photos at once, set a target, and the batch runs locally with a single ZIP at the end. The ZIP packager is bundled too — there’s no “preparing your download” server stage.
Live preview still works offline
The quality slider previews the output in real time, also entirely in the browser. There’s no re-fetch from a server every time the slider moves — the preview is just another Canvas render.