JS Party: JavaScript, CSS, Web Development · Changelog Media

SSR web components for all

·58 min·3 clips
Design systems at big companies can span WordPress, Java Spring, and Node at the same time.
1. JS Party’s “SSR web components for all” centers on Enhance, Brian LaRue’s project for server-rendering web components. 2. Brian LaRue appears as a returning guest and founding engineer at Enhance, while George Hadar from Speakeasy discusses SDK generation for APIs. 3. The episode asks whether the browser’s native ES modules and Web Components can replace part of the work modern JavaScript frameworks do. 4. Brian LaRue says Enhance was built as a response to React, Svelte, and similar frameworks that patch holes in the web platform. 5. He points to server rendering as the missing piece, because most page elements are inert HTML and do not need client-side JavaScript. 6. He says Enhance renders web components on the server so headers and footers can ship as usable HTML before JavaScript loads. 7. He contrasts that with client-heavy frameworks that often send more code to user land than the browser needs. 8. A developer on the team found a Shopify blog post about WasmTime and QuickJS, which showed how JavaScript could run inside WebAssembly. 9. Brian LaRue says that idea led the team to try running the Enhance SSR module in Wasm. 10. He says the experiment worked and made it possible to server-render components from runtimes like Java, PHP, Ruby, Python, Rust, and more. 11. Brian LaRue emphasizes that the Wasm payload is about three megabytes, which he treats as acceptable on the server. 12. He says the approach matters for shops that do not run Node, Deno, or Bun and otherwise fall back to spinners or fully client-rendered apps. 13. He uses design systems as the clearest example, describing large companies as “10 or 11 companies in a trench coat” after acquisitions. 14. He says a single set of web components could avoid reimplementing the same UI in WordPress, PHP, Java Spring, Thymeleaf, and Node. 15. He and the host also mention shared validation logic, including form checks that need a server-side call for uniqueness. 16. Brian LaRue says the server-rendering interface is intentionally narrow: a `render` method that accepts `HTML` and `state`. 17. He explains that this constraint avoids mocking the browser’s full event system and makes the renderer only a couple hundred lines of JavaScript. 18. He describes the tone as technical but conversational, with repeated examples, language-switching jokes, and product walkthroughs. 19. Listeners building design systems, backend apps, or shared components across stacks will get the most from this episode. 20. Listeners wanting a pure front-end framework tour or no web-platform details may skip it.
Listen to the show on