WebAssembly remains a second-class citizen on the web because it lacks direct integration with the web platform, requiring JavaScript glue code to access Web APIs and a cumbersome loading process. This creates a steep learning curve, language-specific toolchain complexity, performance overhead (measured at ~45% slower DOM operations), and forces developers to understand JavaScript even when using other languages. The WebAssembly Component Model is proposed as the solution: a standardized, self-contained executable format that multiple languages can target, supports direct Web API access without JS glue, and enables cross-language interoperability. Mozilla is actively implementing ESM integration for Wasm and working with the WebAssembly CG on the Component Model, with Google also evaluating it.
Table of contents
What makes WebAssembly second-class?Why does this matter?How can we fix this?What is a WebAssembly Component?How could they work?Next StepsAbout Ryan HuntSort: