When a file arrives at the upload endpoint, JekCMS first checks its dimensions against the configured maximum (default: 1920px on the longest side). Files exceeding the limit are scaled down before any format conversion takes place. This pre-scaling step ensures the AVIF encoder works on a predictably sized input and prevents unexpectedly large output files.

EXIF Stripping and Secure Storage

EXIF stripping uses the GD or Imagick extension, depending on which is available on the server. All metadata is removed before the converted file is written to disk — GPS coordinates, camera model, creation timestamps, and any embedded thumbnails. The original file is stored at uploads/originals/ under a hashed filename and is never served over HTTP. The directory has no .htaccess rewrite rules, but the web server configuration blocks direct access by default.

Four Thumbnail Sizes and Quality Settings

Four thumbnail sizes are generated synchronously during upload: thumbnail (400×400 centre crop), medium (800px width, proportional height), large (1600px width, proportional height), and pinterest (1000×1500 face-aware crop). The AVIF quality setting is 80; WebP is 85. Both are configurable per-upload-context in config/media.php.

Serving Images in Custom Themes

In built-in themes, images are served via the <picture> element with AVIF as the primary source and WebP as the fallback. If you are building a custom theme, use the get_featured_image($post, 'medium') helper — it returns the correct source URL based on browser capability negotiation and handles the case where a thumbnail size was not generated.