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

Topic

javascript

47 posts

Loading posts…

ShopperCove

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

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

Ky vs Axios: 9.8 KB vs 19.6 KB Gzip

6 Oct 20264 min read
→

Picocolors vs Chalk: 1.0 KB vs 3.4 KB Gzip

6 Oct 20264 min read
→

Immer vs Mutative: 86 us vs 3 us per Update

6 Oct 20264 min read
→

Ajv vs Zod: 3.9M vs 1.1M Validations per Second

ajv 8.20.0 (+ajv-formats 3.0.1) vs zod 4.6.5 on the same nested user shape as zod-vs-valibot. Warm medians (2k warmup + 9x50k): Ajv validate ok 3,933,337 ops/s vs zod.safeParse 1,138,406 (~3.5x). Bad input: Ajv allErrors 4,094,452 vs Zod 435,537 (~9.4x). Setup: Ajv new+addFormats+compile median 6.47 ms vs Zod build 0.17 ms; break-even ~10k validations. Browser gzip: Ajv runtime 41 KB, Ajv standalone 1.8 KB, Zod classic 93 KB, zod/mini 6.8 KB. Fixture /workspace/bench-ajv-zod/.

6 Oct 20266 min read
→

Valibot vs Zod: Which Is Faster? 0.97M vs 1.14M Parses

zod 4.6.5 vs valibot 1.5.0 on one nested user schema (uuid/email/age/tags/profile/enum). Warm medians after 2k warmup + 9×50k: zod.parse 1,144,494 ops/s vs valibot.parse 968,187 (~1.18×). safeParse fail: valibot 697,760 vs zod 415,523 (~1.7×). esbuild minify+gzip9: 452,999/92,636 B vs 85,126/15,422 B. Package trees ~6.1 MB vs ~1.9 MB. Fixture /workspace/bench-zod-valibot/.

6 Oct 20264 min read
→

Turbo vs Lage: 1.97s vs 3.01s Cold Build

Turbo 2.11.7 vs Lage 2.17.0 on a 4-package diamond npm workspace (250k-iter build scripts): cold wall medians 1,974 ms vs 3,007 ms (~1.5x); Turbo warm 4/4 cache hits ~0.50 s; Lage warm ~1.49 s. Lage required git init.

5 Oct 20264 min read
→

Should You Leave Depcruise? 679ms Test

Madge 8.0.0 vs dependency-cruiser 16.10.2 on 116 JS files: median wall 679 ms vs 1122 ms (~1.65x). Both found the same 2 circular dependency groups. Depcruise also reported 120 modules / 193 dependencies.

5 Oct 20264 min read
→

Should You Leave Depcheck? 26 Files Knip Caught

Knip 6.39.0 vs depcheck 1.4.7 on 95 JS files: median wall 574.574 ms vs 581.463 ms (wash). Knip: 26 unused files, 8 unused deps, 56 unused exports. Depcheck: 8 unused deps only. Both agreed on unused production deps.

5 Oct 20264 min read
→

Should You Leave Rollup? 964ms vs 246ms

Rolldown 1.2.12 vs Rollup 4.64.0 on 501 ESM files (197380 B source): median wall 245.617 ms vs 964.3 ms (~3.9x). Output 130522 vs 126894 B. Direct node bin, 5 interleaved warm runs, no minify.

5 Oct 20264 min read
→

Should You Leave Prettier? 1.59s vs 0.51s

dprint 0.60.1 vs Prettier 3.9.9 on 180 files (120 JS + 40 JSON + 20 MD, 38925 B pristine): write medians 514 ms vs 1586 ms; check 455 ms vs 1313 ms. Output 44805 vs 45285 B. All 120 JS files differed on arrow-param parentheses under these defaults.

5 Oct 20265 min read
→

Should You Leave Terser? 824ms vs 41ms

Terser 5.51.2 vs esbuild 0.28.2 vs SWC 1.16.13 minify on a 403,418-byte unminified ESM bundle (800 modules): medians 824 ms / 41 ms / 70 ms. Output sizes 219492 / 207619 / 199712 B. Leave Terser if you only need fast minify; keep it for Terser-only compress options.

5 Oct 20265 min read
→

Biome vs ESLint: Should You Switch? 0.41s vs 18.7s

Biome 2.5.15 check vs ESLint 9.39.4 + Prettier 3.8.4 on react-hook-form (317 files): 0.41 s vs 18.7 s sequential stack (ESLint 13.58 s, Prettier check 5.22 s). migrate eslint: 54/476 direct, ~50% covered. Biome 200 errors/427 warnings vs ESLint 0/562; 9 format diffs; 287 noExplicitAny from recommended.

5 Oct 20266 min read
→
Previous
  1. 1
  2. 2
  3. 3
  4. 4
Next