Vite
This example shows a Svelte app built with @srcset/vite-plugin and @srcset/svelte.
The generation rules live in vite.config.js, one per file extension. src/App.svelte overrides them per import - a JSON rule in the import query for the first photo, ?placeholder for the second. Edit a rule and the variants listed under every image change with it.