Image transform + render service. Cloudinary-style URL transforms at
/cnar; satori-driven template composites at /template.
/cnar/f_…Same source image, three output formats at quality 50. Cards have fixed width; smaller outputs sit centered inside their frame.
g_faces:auto vs. fixed gravitySquish runs a Pico face cascade on the decoded image and crops to keep the subject in frame. Same input, three crop strategies.
q_25 · q_60 · q_90Same crop, three quality settings. Useful for eyeballing where AVIF compression starts to break down.
/cnar/f_auto vs. pg_1Same animated GIF, three ways: keep the animation, force a single frame, or fall back to GIF for clients without animated WebP.
revmail.revcontent.com with JS substitution
ESPs ship pixel impressions with macros like {UNIQUEKEY},
{SENDID}, {DATETIME}, {EMAIL},
{MD5EMAIL}, {SHA1EMAIL}, {SHA256EMAIL},
{ESP}. This demo replaces every macro client-side with a fresh
synthetic value on each page load, so refreshing always misses cache and the
pixel actually fires through.
/template/f_…/?templateId=…&…
Passes arbitrary query-string vars to satori inline-vars mode. templateId is required.
Optionally supply url= to override the source image; squish kicks off the source fetch in parallel with the satori call.
Supports the same f_ / q_ / w_ transform tokens as /cnar.