It’s time to go ESM-only

February 14, 2025 By Mark Otto Off

Style Observer: A Library to Observe CSS Property Changes — Lea Verou is a developer who’s easy to admire because whenever she sets out to solve a problem, the results are always fully formed with no cut corners. So it goes with this ‘exhaustively tested’ JS library for observing changes to CSS properties which deftly handles lots of browser quirks. See the project homepage for more. (TIL there’s a .style TLD!)

Lea Verou

💡 Lea has many other projects to check out, including Color.js which similarly nails the whole process of handling and manipulating colors in JS and the browser.

Why to Move On to ‘ESM-Only’ — The march to using ES modules has been going on for years, but if you’re still holding out, there’s probably a good reason why? However, while you can maintain packages supporting both ESM and CommonJS, Anthony thinks it’s time to go ‘ESM only’ and explains why.

Anthony Fu

💡 On that topic, Sarah Gooding writes about require(esm) being backported and stable on Node.js 20 which makes the transition even easier to justify.

📒 Articles & Tutorials

🛠 Code & Tools

  • Kaluma 1.2 – Tiny JavaScript runtime for the RP2040 (Raspberry Pi Pico).

  • bcrypt.js 3.0 – Optimized bcrypt in pure JS. Even in the browser.

  • Jasmine 5.6 – Testing framework for browsers & Node.

  • 🤖 Midscene.js 0.11 – Let AI be your browser operator.

🔠 And a little typography bonus