Enhance Wasm: Bring Web Components to All Your Server Runtimes

This one is for web developers.

If you want to use web components but you’re turned off by the JavaScript requirement, or you want to use server-side rendering but you’re using a different runtime like Go or Ruby, then you might be interested in Enhance Wasm.

Enhance Wasm allows you to bring web components into languages like Go, Ruby, or C#, and share those web components between projects.

It’s particularly useful in large companies that have grown through acquisition and may have four or five different technology sections completely divorced from one another, said LeRoux. For instance, his wife works at the large tech firm LaunchDarkly, which has multiple systems from acquired startups. It’s a major headache to maintain a design system across them because they have a blog in PHP and a Go app and different technologies implemented across the different digital properties, he said.

“If you have to maintain a design system across [different runtimes then] you’re re‑implementing [your design] for each one of these runtimes,” he said. “With Enhance Wasm, we could do all these definitions with web components, and run them in all of these [projects] from one set of definitions, and that’s that’s why this is compelling.”

Enhance Wasm currently supports these languages:

  • C#
  • Deno
  • Go
  • Java
  • Node
  • PHP
  • Python
  • Ruby
  • Rust


It is also worth mentioning the closely related parent project which is simply known as “Enhance” (not Enhance Wasm). Enhance is a web framework that doesn’t require client-side JavaScript and which focuses on HTML and web standards.


1 Like