Hologram v0.8.0 introduces JavaScript interoperability as its most-requested feature, allowing Elixir developers to call JS functions, use npm packages, interact with Web APIs, instantiate classes, dispatch DOM events, and work with Web Components — all from Elixir code. The new Hologram.JS module provides a comprehensive API including js_import, JS.call, JS.get/set/delete, JS.new, JS.eval, and JS.dispatch_event. JavaScript Promises are mapped to Elixir Tasks, enabling async operations with Task.await/1. The release also adds Web Components template support, fixes language server recompilation loops (covering ElixirLS, Lexical, and Next LS), and refactors the Unicode module. A breaking change requires explicit use Hologram.JS in modules that use the ~JS sigil. The JS interop PR alone added over 7,000 lines across 150 files.

6m read timeFrom hologram.page
Post cover image
Table of contents
Why JS Interop MattersJS Interop APIAsync Support and the Road to Elixir's Process ModelWeb Components SupportLanguage Server Compatibility FixUnicode Module RefactoringBreaking ChangeBy the NumbersAcknowledgmentsSponsorsStay in the LoopWhat's Next

Sort: