JPEG XL Image Optimizer

Makes images smaller with JPEG XL. Photos shrink about 75% with the same look, text stays sharp. Originals kept for incompatible browsers.

Public name@rapier.website/jxl

Or open Registry in your EmDash admin and search for this name.

Overview

Every upload gets a JPEG XL copy, served to compatible browsers. Browsers which cannot display it get served the original file.

The rapier-jxl encoder makes smaller files than libjxl at the same quality and automatically keeps text sharp inside compressed screenshots.

JPEGs are kept as JPEG XL, then converted back losslessly when needed. Other formats always keep the original file.

npx rapier-jxl add emdash

Works with Cloudflare R2 and Node local storage.

Screenshots

Permissions

Plugins get only the capabilities they declare and you approve. Your EmDash admin lists these again before anything installs.

No special permissions requested

This plugin does not request access to protected EmDash features.

FAQ

  • What does this plug-in do? It makes a JPEG XL copy of every image in your media library. Browsers that show JPEG XL get the copy. Incompatible browsers are served your original file.
  • Which browsers show JPEG XL? Chrome, Firefox and Safari all now support JXL by default.
  • How much smaller will my images be? "Same look" at the quality 90 default made photos about 75% smaller than the uploaded JPEG. "Exact" made files about 18% smaller with the exact same pixels.
  • Will my images look worse? No. In "Same look", each copy is checked against the original with SSIMULACRA 2. "Exact" keeps every pixel unchanged.
  • What happens to my original files? Nothing is ever lost. JPEGs are kept as JPEG XL, then converted back losslessly into the identical JPEG when needed. Other formats always keep the original file.
  • Do I need an account, key or a subscription? No. Images are converted on your own server, or in your own browser where the server cannot handle it. Nothing is uploaded and there are no usage limits.
  • What about older images or WordPress imports? The plug-in's page converts older images in the background. "Import from WordPress" brings in a WordPress export's images and updates the links in your posts.
  • Which images does it convert? JPEG, PNG, WebP and AVIF. GIF and SVG are left as they are.
  • What is Effort? How hard the encoder works for a smaller file, from 1 to 9. The default, 7, takes about a minute and a half for a 12-megapixel photo on a small 4-core server. Effort 3 takes about a second.
  • Does it work with responsive images and CDNs? Yes. Sizes makes JPEG XL copies up to 3840 pixels wide, and image responses carry Vary: Accept.
  • How do I remove it? Run npx rapier-jxl remove emdash. It restores every original JPEG, then removes the plug-in.
  • What storage works? Cloudflare R2 and Node local storage.

Security

The JPEG XL Image Optimizer Registry companion displays setup instructions. It requests no capabilities and does not read media, contact external services, or store site data.

The separate native integration runs inside the site with the storage access configured by its operator. It verifies image results before publication, binds work to the original generation and delivery choice, and preserves exact JPEG reconstruction before replacing a stored JPEG with its archive. Other formats retain their original file.

Native removal requires plugins:manage. The CLI uses the installed EmDash public client, the matching unexpired login or an explicit EMDASH_TOKEN, and HTTPS for remote origins. It changes the config only after reading a saved restoration proof for the same site, storage scope and removal operation with zero remaining JPEG archives and no active writer. Blocked or ambiguous restoration leaves the integration configured. Removing the Registry guide alone has no image-storage effect.

Report security concerns to hello@rapier.website. Send a concise description without passwords, access tokens or private images.

Installation

Just run this in your site's folder:

npx rapier-jxl add emdash

Or tell your coding agent:

"Add rapier-jxl to my EmDash site with npx rapier-jxl add emdash."

Or install rapier-jxl, then in astro.config.mjs wrap your EmDash setup:

import {jxl} from 'rapier-jxl/emdash';

jxl(emdash, {database, storage});

Keep exploring

More plugins like JPEG XL Image Optimizer

Browse by keyword, or see everything @rapier.website publishes.

Install on your site

Open in EmDash

JPEG XL Image Optimizer

@rapier.website/jxl

Choose the EmDash site where you want to review this plugin. Nothing is installed until you confirm its permissions in that site's admin.

This browser will remember the site. You can change it next time.