ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
Topics
sre111localhost lab102performance70python58javascript47bundle size36benchmarking35node.js35web development21typescript19benchmark16content creation15All topics
About

Topic

image optimization

3 posts

Loading posts…

ShopperCove

Hands-on notes on developer tools, written after the tool has actually been run.

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

mozjpeg vs libvips: 385ms vs 31ms Encode

mozjpeg cjpeg 3.3.1 (mozjpeg npm 8.0.0) vs libvips jpeg via sharp 0.35.5 (mozjpeg:false) on one 1920×1080 JPEG → q80. Warm medians (7 rounds after 1 warm-up): cjpeg 385 ms / 675,128 B vs libvips jpeg 31 ms / 675,714 B (~12×). Context: sharp mozjpeg:true 308 ms / 546,546 B. Fixture /workspace/bench-mozjpeg-libvips/. cjpeg timed with spawn + PPM read.

6 Oct 20264 min read
→

Squoosh vs Sharp: 483ms vs 291ms Encode

@jsquash/jpeg 1.6.0 (Squoosh mozjpeg WASM) vs sharp 0.35.5 mozjpeg on one 1920×1080 JPEG → q80 encode from pre-decoded RGBA. Warm medians (7 rounds after 1 warm-up): Squoosh WASM 483 ms / 675,247 B vs sharp mozjpeg 291 ms / 546,546 B (~1.7×). Context: sharp decode+encode mozjpeg 303 ms; sharp libvips jpeg from raw 23 ms / 675,714 B. Fixture /workspace/bench-squoosh-sharp/. @squoosh/lib 0.5.3 fails on Node 22.

6 Oct 20264 min read
→

Astro 7.3: multi preview servers, image/cache logger, Cloudflare finalize() (3 Sep 2026)

Astro 7.3 (3 Sep 2026) adds --ignore-lock for parallel astro preview servers (handy for Playwright), passes Astro's runtime logger into custom image services and cache providers, and ships finalize() in @astrojs/cloudflare for custom worker entrypoints. ShopperCove docs checklist only; npm confirmed 7.3.0 / 7.3.5; no affiliate.

5 Oct 20263 min read
→