Convertly does not require imgix Source or a proprietary loader. Any framework can build URLs with
@convertly-sh/image or plain string templates. See CDN Introduction and SDKs.Migration approach
- Choose a delivery namespace in Image CDN → Delivery.
- Point sources at Convertly Storage file IDs or an origin source for assets already on HTTPS.
- Rewrite URLs hostname + param names (table below). Keep the same
w,h, andfitvalues where possible — cache keys will differ until traffic moves. - Run in parallel during cutover: serve imgix and Convertly URLs to a staging environment, compare bytes and Lighthouse metrics.
- Purge old caches only after DNS/CNAME points at
cdn.convertly.sh(or your custom domain).
Hostname and path
| imgix | Convertly |
|---|---|
https://your-subdomain.imgix.net/{path} | https://cdn.convertly.sh/{namespace}/{fileIdOrSlug}?… |
| Path-based asset | Storage UUID/slug or /{namespace}/o/{originSlug}/{path} |
| Render API (server-side) | Same CDN URL — no separate render endpoint |
| imgix | Convertly |
|---|---|
?tx=hero (legacy) | ?preset=hero or /p/hero |
Parameter mapping
Size, crop, and fit
| imgix | Convertly | Notes |
|---|---|---|
w, h | w, h | Same |
ar | ar | 16:9, 3/2, or decimal |
fit=crop | fit=cover | Convertly cover = crop to fill |
fit=clip | fit=contain | Letterbox inside box |
fit=fill | fit=fill | Stretch |
fit=max | fit=inside | Max dimension, preserve aspect |
fit=min | fit=outside | Min dimension |
crop=focalpoint + fp-x, fp-y | fp=x,y | Normalised [0,1] or percentages |
crop=faces | gravity=face | Falls through to smart crop if no face |
crop=entropy | gravity=entropy | Detail-dense region |
crop=edges | gravity=auto | Saliency-based default |
rect | rect | Source crop before resize |
Adjustments and effects
| imgix | Convertly | Notes |
|---|---|---|
bri | bri | 100 = unchanged |
con | con | Same |
sat | sat | Same |
hue | hue | Degrees |
blur | blur | Whole-image Gaussian |
sharp | sharp | Unsharp mask |
monochrome | monochrome | Hex tint, preserves alpha |
auto=enhance | auto=enhance | Subtle lift |
auto=compress | auto=compress | Smaller encode |
Format and delivery
| imgix | Convertly | Notes |
|---|---|---|
fm=webp / auto | format=webp / auto | AVIF when Accept allows |
q | q | Or q=auto |
dpr | dpr | 1–4 |
jpg-progressive | jpgProgressive | Default on for JPEG |
dl | dl | Attachment download |
strip=1 | strip=all | Metadata removal |
Palette and colour
| imgix | Convertly | Notes |
|---|---|---|
palette=json | palette=json | Same response shape (colors, dominant_colors, …) |
palette=css | palette=css | prefix= for class names |
colors | colors | Max swatches in population list |
| (persist at upload) | POST /api/images/analyze | Focal + palette JSON once per file |
Smart crop and analysis
| imgix | Convertly | Notes |
|---|---|---|
| Per-request palette | CDN ?palette=json after transforms | Swatches reflect rendered output |
| — | gravity=smart / crop=smart | Content-aware crop without manual fp |
| — | POST /api/images/analyze | Faces, focal point, palette for CMS storage |
Face privacy
| imgix | Convertly | Notes |
|---|---|---|
blur=faces | blurFaces=1 | Optional faceBlur, faceBlurShape |
| Region blur | blurRegion=x,y,w,h | Output-pixel coordinates |
SVG and vector
| imgix | Convertly | Notes |
|---|---|---|
svg-sanitize | svgSanitize | Default on for SVG sources |
| Raster → SVG | format=svg&vectorize=gradient | See Vector & SVG |
| Recolour SVG paths | svgColor=RRGGBB | Before rasterize |
AI and ML
| imgix | Convertly | Notes |
|---|---|---|
bg-remove | bgRemove=1 | All plans; unsigned OK |
upscale | upscale=1 | Forma; signed URL required |
| Generative fill | fill=gen + fillGenPrompt | Signed URL |
| Background replace | bgReplace=… | Signed URL |
Watermarks and text
| imgix | Convertly | Notes |
|---|---|---|
mark, markalign, … | watermark, markPosition, … | Stored file ID or HTTPS URL |
| Text overlay params | text, textSize, textColor, … | See Text overlays |
Features to plan for
| imgix capability | Convertly status |
|---|---|
| imgix Source (React) | Use @convertly-sh/image or URL builder |
| Video rendering API | Clip trim + poster via CDN; see Video transforms |
| PDF page rasterization | page= param on CDN |
Every legacy fit alias | Core modes covered; verify edge cases in staging |
Example rewrite
imgixsat=-20 is relative; Convertly sat is absolute (100 = unchanged). Translate relative adjustments to absolute values or test visually.
Next steps
- Smart cropping & image analysis — focal points, palette, analyze API
- Transforms reference — full param index
- Presets and signed URLs — named bundles and HMAC