ES Modules

What are ES Modules?

While ES Modules (alternatively ESM) are formally defined in the Language Specification, they're more broadly a unified specification for module formats. Until very recently, with the advent of importmaps in the browser, they were more a meta format for babel compilation (in an effort to "future proof" codebases) or at best a compilation format to bundle code into. As a result we've sat for years in a holding pattern, waiting.

Why would I bother?

The formats that landed aren't 100% compatible with each other, nor did the standards body include either a method for compatibility (other than shims) or deal with the very large body of browser objects that already have counterparts in the node world. This leaves developers with a way to write 'hello world' apps but no real way to dev with native imports in all environments. This is further compounded by the static checking of import statements.

Because most of the seats of the standards bodies are paid for by large organizations that have a vested interest in keeping developers dependent on their tooling and cloud services, it's up to the community to deliver the future ourselves.

Cut to the swag...

As a result this is no small feat to accomplish and deserves a little visibility. This site aims to make these types of sites more visible, as well as simplifying and centralizing the support scenarios and explanations to users.