edge · transform · deliver

Point Refract at your images.

On-the-fly transforms, optimization, and global edge delivery — driven by URL parameters. Point Refract at an origin you already have; originals are fetched on demand and cached at the edge, never stored permanently.

https://demo.refract.dev/hero.jpg?w=1200&fm=auto&q=80
A single ceramic vessel on a pale surface — a sample image served through Refract.

capabilities: 3

Three things, on every request.

Transform, optimize, and deliver — each one driven by the same URL. No pipeline to run, no build step to wait on.

Folded matte fabric on a light background.

transform

Ten chainable parameters.

Resize, crop, rotate, and blur with ten URL parameters that chain in any order. Smart crop keeps the subject in frame.

?w=1200&fit=crop&crop=smart
A calm gradient sky at dusk over a flat horizon.

optimize

The right format, negotiated.

fm=auto negotiates AVIF → WebP → JPEG from the request's Accept header. Average 62% payload reduction versus source JPEG.

fm=auto
An aerial view of a curving road across open terrain.

deliver

Forty-one edge locations.

Cached response p50 21 ms, cache hit ratio 98.6%. Cold transform p50 89 ms, p99 340 ms. The network does the distance.

41 edge locations

transform: live

The same file, redrawn by the URL.

Move a control and the preview answers in the same frame — the way a viewport does. The request URL rewrites as you go.

source

A single peach on a pale tabletop — the source image.

result

The source peach redrawn by the parameters currently set.

wwidth, px 1200
hheight, px auto
fitresize mode
cropcrop strategy
rotrotation
blur0 – 1000
bgfill for fit=contain

fm, q, and dpr Negotiated — format and re-encoding are decided at the edge from the Accept header, so the browser preview rides them in the URL without running them.

deliver: the numbers

Answers in milliseconds, everywhere.

62%

average payload reduction vs. source JPEG

21 ms

median cached response

98.6%

cache hit ratio

99.95%

uptime SLA on Scale

quickstart: 3 steps

Start building with one URL.

Create a key, point Refract at your origin, and request your first transform. The SDK takes it from there.