Add Logic to Your Processing Pipelines

Use JavaScript expressions to compute values, set fallbacks, and branch logic — all inline in your processing steps.

No credit card needed5 GB included in the free plan
Uploaded files
panorama.jpgLandscape
story_reel.pngPortrait
cover_art.jpgLandscape
headshot.pngPortrait
hero_banner.jpgLandscape
JavaScript expressions

Use the full power of JavaScript to compute values dynamically based on file properties.

Fallback values

Provide default values for missing metadata using standard JavaScript operators.

Conditional logic

Apply different processing based on file size, type, dimensions, or any metadata field.

Use Cases

Dynamic File Processing

Use JavaScript expressions to create intelligent processing pipelines.

Dynamic dimensions

Calculate output dimensions based on input file properties.

"width": "${file.meta.width * (720 / file.meta.height)}"
bird.webp
1600 × 1200
width960

Fallback values

Provide default values when file metadata is missing.

"title": "${file.meta.title || 'Untitled'}"
photo.jpg
3.8 MB · 4032 × 3024
title"Untitled"

Conditional logic

Apply different processing based on file type, size, or any metadata field.

"resize_strategy": "${file.meta.width > file.meta.height ? 'fit' : 'pad'}"
FileDimensionsResize strategy
panorama.jpg3840 × 1080Evaluating…fitfitportrait.png800 × 1200Evaluating…padpadbanner.jpg1920 × 400Evaluating…fitfitavatar.png512 × 512Evaluating…padpadcover.jpg2560 × 1440Evaluating…fitfitheadshot.png600 × 900Evaluating…padpadhero.jpg1920 × 800Evaluating…fitfitlogo.png256 × 256Evaluating…padpadslide.jpg1280 × 720Evaluating…fitfiticon.png64 × 64Evaluating…padpadsplash.jpg3000 × 1500Evaluating…fitfitthumb.png150 × 200Evaluating…padpadwallpaper.jpg2560 × 1080Evaluating…fitfitprofile.png400 × 400Evaluating…padpadbackdrop.jpg4096 × 2160Evaluating…fitfitstamp.png128 × 128Evaluating…padpadfeature.jpg1600 × 900Evaluating…fitfitbadge.png96 × 96Evaluating…padpadpromo.jpg1200 × 630Evaluating…fitfitphoto.png800 × 1067Evaluating…padpadpanorama.jpg3840 × 1080Evaluating…fitfitportrait.png800 × 1200Evaluating…padpadbanner.jpg1920 × 400Evaluating…fitfitavatar.png512 × 512Evaluating…padpadcover.jpg2560 × 1440Evaluating…fitfitheadshot.png600 × 900Evaluating…padpadhero.jpg1920 × 800Evaluating…fitfitlogo.png256 × 256Evaluating…padpadslide.jpg1280 × 720Evaluating…fitfiticon.png64 × 64Evaluating…padpadsplash.jpg3000 × 1500Evaluating…fitfitthumb.png150 × 200Evaluating…padpadwallpaper.jpg2560 × 1080Evaluating…fitfitprofile.png400 × 400Evaluating…padpadbackdrop.jpg4096 × 2160Evaluating…fitfitstamp.png128 × 128Evaluating…padpadfeature.jpg1600 × 900Evaluating…fitfitbadge.png96 × 96Evaluating…padpadpromo.jpg1200 × 630Evaluating…fitfitphoto.png800 × 1067Evaluating…padpad
Processing steps with JavaScript expressions
{
  "steps": {
    ":original": {
      "robot": "/upload/handle"
    },
    "resized": {
      "use": ":original",
      "robot": "/image/resize",
      "width": "${Math.min(width, 1920)}",
      "height": "${Math.min(height, 1080)}",
      "imagemagick_stack": "${size > 5000000 ? 'v3.0.1' : 'v2.0.10'}"
    },
    "exported": {
      "use": "resized",
      "robot": "/s3/store",
      "path": "${fields.category || 'uncategorized'}/${file.name}"
    }
  }
}
Transloadit

Stop hardcoding processing parameters

Transloadit's code evaluation service lets you create intelligent pipelines that adapt to each file automatically.
JavaScript expressions

Use any JavaScript expression inline with dollar-brace syntax.

Access file metadata

Reference file.meta.width, file.meta.height, file.size, and all metadata fields.

Standard library

Use Math, Date, String methods, and other JavaScript built-ins for complex logic.

Fallback values

Handle missing metadata gracefully with || operators and ternary expressions.

Fast execution

Scripts execute in under 1ms with a 1-second timeout for safety.

Cost effective

Simple variable access is free. Only complex JavaScript expressions are charged.

Demos

See it in action

To give you an impression of our versatility, here is a hand-picked overview of live demos.

Try Transloadit

Try Transloadit for free

Start creating dynamic processing pipelines today with our free plan.
Hardcoded processing values
Dynamic expressions
Missing metadata errors
Fallback values
One-size-fits-all processing
Conditional logic
Complex dimension calculations
Math expressions
Static output filenames
Dynamic path templates
Inflexible workflows
JavaScript-powered pipelines
GDPR
HIPAA
ISO 27001ISO27001
AES-256
SOC 2 Type II
No credit card needed · 5 GB included in the free plan