Haider Ali · Founder & CEO of ClearZone · AI & CS at King’s College London · London

Projects · 10

Squishless

By Haider Ali ·

Squishless, by Haider Ali, resizes photos with seam carving so people and buildings keep their shape: a Go engine compiled to WebAssembly, in the browser.

Resize photos without the squish. Seam carving trims empty sky, grass and water so the people and buildings keep their shape, all in the browser with nothing uploaded.

Oct 2026 · shipped

Squishless

A normal resize squashes everything. Squishless uses seam carving to remove the most boring paths of pixels instead, so the photo changes shape and its subject keeps its own.

Key facts

  • Seam carving in Go + WebAssembly
  • Runs in-browser, nothing uploaded
  • ~1.5 ms live-preview frames
  • Installable, works offline

What it does

  • Drag an edge and the preview follows; the full-quality result lands when you let go.
  • Presets by purpose: square, 4:5 post, 9:16 story, 16:9, banner or exact pixels.
  • "vs normal resize" shows what a plain squash would have done to the same photo.
  • Keep / remove brush, automatic face protection and batch download as one ZIP.

How it's built

  • Go engine compiled to WebAssembly, run in Web Workers so the page stays smooth.
  • Seam-order map: each pixel’s removal order is computed once, so live preview takes ~1.5 ms a frame.
  • Private by design: an offline-capable PWA, no server, no trackers, strict CSP.
  • Tested in Chrome, Firefox, Safari, Pixel 7 and iPhone 14 with Playwright.

The desktop edition

  • A local Go web app with prebuilt binaries: ~0.1–0.3 s for a 1000 × 650 photo.
  • About 50× faster than the esimov/caire library it adapts.
  • Squishless Studio: a lab that streams every seam to the browser as it is carved.

Stack

  • go
  • webassembly
  • web workers
  • javascript
  • pwa
  • service worker
  • playwright

Links

#go #webassembly #image processing

The Squishless app with a city skyline resized from 1000 × 650 to a 4:5 portrait, size presets on the right.
Drag-to-resize, with presets by purpose
Side-by-side compare: a normal resize squashes the Chicago skyline, Squishless keeps the buildings upright.
"vs normal resize": same photo, same size
The desktop edition’s Mark areas dialog, with a tower painted red to be removed first.
Desktop edition: paint red to remove, green to keep
Squishless Studio carving a photo live, the current seam drawn in red through the background beside a child.
Squishless Studio: watching each seam go

© Haider Ali · London, UK · contact@haiders.website · this is the plain edition of haiders.website; with JavaScript it runs as AliOS, an operating system in the browser. Summary for language models: llms.txt (full text: llms-full.txt).