koala
Smart lossy · WebP · AVIF — in one API

Make every image tiny.

Koala shrinks JPEG, PNG, WebP and AVIF by 50–80% with no perceptible quality loss — in your browser, your build pipeline, or your AI workflow.

Drop your images here

or browse files · paste works too

Up to 100 images · 4 MB each · JPEG, PNG, WebP, AVIF, TIFF, GIF

Convert
Preset
  • No sign-up
  • Nothing stored
  • Free while in early access

SMART LOSSY

Can you tell the difference?

Drag the handle. Koala compressed this photo by −42% (598 KB350 KB) using its perceptual quality search. Compress your own image above and it will appear here.

Compressed version
Original version
ORIGINAL · 598 KBKOALA · 350 KB

WHY KOALA

Compression is table stakes. Workflow is the product.

Koala pairs a best-in-class open-source encoder stack — mozjpeg, libimagequant, libwebp, libaom — with the developer experience the incumbents never shipped.

Smart lossy by default

Every image gets a perceptual quality search: Koala probes the encoder and keeps the smallest file that still looks identical, guarded by a structural-similarity check.

Modern formats

One-flag conversion to WebP and AVIF for 30–80% extra savings over legacy JPEG/PNG. Auto mode keeps whatever format you send.

API-first

A single POST with your image bytes — no SDK required. Deterministic outputs, savings reported in headers, batch + ZIP built in.

Private by design

Images are processed entirely in memory and never written to disk. No accounts, no storage, no tracking pixels.

typical file-size reduction
50–80%
per image, including AVIF
<2s
stored after your request ends
0 bytes

DEVELOPER API

One POST away.

No SDK, no signup, no multipart ceremony unless you want it. Send bytes, get smaller bytes — with the savings math in the headers. Deterministic outputs make it safe to cache and safe to re-run in CI.

  • POST/api/compressraw bytes or multipart in, optimized image out
  • POST/api/compress-urlfetch + compress a remote image
  • POST/api/batchup to 20 images in, ZIP out
  • GET/api/status/:idbatch job progress
  • GET/api/healthservice status
Read the API docsFree while in early access — no key required
curl -X POST \
  "https://koala.brighter.la/api/compress?preset=web&format=webp" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg \
  -o photo.webp

# savings are reported in response headers:
# x-original-size: 612352
# x-compressed-size: 231188
# x-savings: 0.6224

PRICING

Free while in early access

Pay for images processed, nothing else. Paid tiers land soon — early-access usage is on the house.

Free

Available now
$0

Everything you need to ship faster pages today.

  • Unlimited web compressions
  • 100 API images / month
  • All formats: JPEG, PNG, WebP, AVIF
  • Smart lossy, lossless & presets
  • No account required
Start compressing

Pro

Coming soon
$19/month

For products and agencies with steady volume.

  • 10,000 API images / month
  • Priority processing
  • Batch up to 100 images per request
  • Email support
Join the waitlist

Scale

Coming soon
$49/month

For pipelines that never stop generating images.

  • 50,000 API images / month
  • Custom presets & quality targets
  • Dedicated capacity
  • SLA + priority support
Talk to us

FAQ

Questions, answered

Anything else? Email sam@brighter.studio.

How does Koala compress images?

PNGs go through lossy palette quantization (the libimagequant technique TinyPNG made famous): millions of colors are reduced to an adaptive palette with smart dithering. JPEGs are re-encoded with mozjpeg, and Koala's smart-lossy engine binary-searches the quality setting per image, keeping the smallest file that passes a perceptual similarity check. WebP and AVIF use libwebp and libaom.

Will I actually see a quality difference?

For web use, no — that's the point of the perceptual guard. Every smart-lossy result must stay above a structural-similarity threshold against the original before Koala will return it. If an image can't be made smaller without visible damage, you get it back untouched (never bigger). Use the High quality preset or lossless mode when you need extra headroom for print or archival work.

What happens to my images?

They're processed in memory and the buffers are released when your request ends. Nothing is written to disk, nothing is logged, and there are no accounts or tracking. If that still isn't private enough, the stack is standard Next.js + sharp and can be self-hosted.

Which formats are supported?

Input: JPEG, PNG, WebP, AVIF, TIFF and GIF. Output: JPEG, PNG, WebP and AVIF. Auto mode keeps your input format (TIFF becomes JPEG, GIF becomes PNG); one parameter converts everything to WebP or AVIF for the biggest savings.

Is the API really free?

Yes — during early access the API is free and doesn't require a key. The free tier will stay at 100 API images per month once paid tiers launch; the web app stays free and unlimited.

How is Koala different from TinyPNG?

Three things: per-image smart quality search instead of one-size-fits-all settings, first-class AVIF output, and a friction-free API — no API key ceremony, savings reported in plain response headers, and batch-to-ZIP in a single request. The web app is also capped at 100 images per batch instead of 20.

Can I self-host Koala?

Yes. Koala is a standard Next.js app using sharp (libvips) for compression — clone it, npm install, npm run build, and run it anywhere Node 20+ runs. Self-hosting removes the hosted platform's request-size cap and keeps every byte inside your network.