Images · GIFs · Video · Audio
Media, squished.
Up to 99% smaller files that still look right. AVIF, AV1 and Opus, picked for each browser and cached, so repeat requests come back in milliseconds.
Squishing…
The first request encodes the file. After that it's served from cache.
One URL. No SDK.
Put squish.fit/?file= in front of any media link. Each browser gets the best format it supports, and every later request comes from cache.
<img src="https://squish.fit/?file=https://site.com/hero.jpg&w=1200"> <video src="https://squish.fit/?file=https://site.com/clip.mp4&maxkb=300&codec=av1">
fileURL of the original. Any public http(s) link.
srcID of a file uploaded to squish (instead of file).
wMax width in px. Never upscales.
qQuality 1–100. Leave it out for smart defaults.
maxkbVideo: hard size limit. Picks bitrate, resolution and fps.
codecVideo: h264 (plays everywhere) or av1 (about half the size).
formatForce avif, webp, jpeg, mp4, opus or aac.
hVideo: max height in px.
Upload with POST /upload (raw body) and you get back an id to use as src. Every response includes X-Original-Bytes, X-Served-Bytes and X-Detail.