// MOBILE

Native apps without a media backend.

DPR-aware sizes via URL params, BlurHash strings that ship in the JSON payload at ~28 bytes, dominant-color fallbacks for offline. Your iOS and Android teams stop asking for a thumbnail Lambda.

Every release someone says "we need a thumbnail service." You bolt one onto your Node API. Two releases later it’s slow, undocumented, and on fire.

Same JSON · shimmer → BlurHash → crisp.
// DPR LADDER

Every device · the right pixels.

iPhone 15 is @3x, Pixel 8 is @2.6x, older Androids are @1.5x. One buildTransformUrl call with dpr= per device — the server returns the right pixel density, cached per variant.
Pixel 4a render
Pixel 4a@1.5x144px · 18KB
Pixel 8 render
Pixel 8@2x192px · 38KB
iPhone 15 Pro render
iPhone 15 Pro@3x288px · 72KB
One URL builder · dpr= picks the right pixel density per device.
// THE JSON PAYLOAD

One response · whole UI.

Ship the response straight from your API to the mobile client. blurhash decodes to native shimmer in 200ms, dominantHex paints the placeholder, thumbnail URLs render the real image when the network catches up.
One /info response · paints the whole screen.
// NATIVE CARDS

Three surfaces · one payload.

The same JSON payload becomes a feed card, a detail hero, or a share image — palette tints the chrome, BlurHash decodes to native shimmer, and your designer never has to ship another spec.
// READY TO BUILD

Ship mobile images today.

200 credits free for 7 days. No card, no signup pipeline — paste your bucket, copy a URL, watch it work.