Patu
Drop an image, JS, CSS or a font, click to pick one, or paste a URL. The demo favors latency over size: it downscales large images and uses fast encoder settings. For the smallest files, use the API with your own parameters.
or scan your whole site →

Lighten your front end.

The smallest web-weaver, for the lightest web.

Patu optimizes the static assets a page ships: images, SVG, JavaScript, CSS and fonts. Images target a perceptual quality score; everything else is converted losslessly. Send an asset, get back something smaller that renders identically. Inline, or stored behind a CDN with a URL manifest and Subresource Integrity.

Get a free API key → · API reference

What it does

Quickstart

Patu is API-key authenticated. Send the raw bytes; declare non-image assets with Content-Type.

# Inline: get the optimised bytes back
curl -X POST "https://patu.dev/v1/compress?formats=avif,webp,fallback&target=80" \
  -H "X-Api-Key: $PATU_KEY" \
  --data-binary @photo.jpg -o photo.avif

# JS, CSS or a font (routed by Content-Type)
curl -X POST "https://patu.dev/v1/compress" \
  -H "X-Api-Key: $PATU_KEY" -H "Content-Type: font/ttf" \
  --data-binary @Inter.ttf -o Inter.woff2

# Stored: persist the variants, get a JSON manifest of URLs
curl -X POST "https://patu.dev/v1/compress?mode=stored&widths=480,1024" \
  -H "X-Api-Key: $PATU_KEY" \
  --data-binary @photo.jpg

No API key? Drop an image, JS, CSS or font above to try the public demo endpoint. Full parameters, response shapes and the asset endpoints are on the API page.