March 02, 2026
Contents
What I did

I blasted a billion or so tokens at some concentrated problems to accomplish scoped goals. If you’re curioous about the “how” for corralling coding agents like so, I go into detail in this post. For details on what WebAssembly or Elixir are as well as the motivation behind bridging the two, keep on reading!
What is WebAssembly?
WebAssembly, or WASM for short, was once the rage and even got proclaimed by the inventor of Docker as what could have been the “missing piece” for isolating computational work. Virtual machines didn’t do it, containers didn’t do it, unikernels didn’t do it, perhaps WASM was the solution we needed.
Starting as asm.js, a subset of JavaScript with the intent being performance, WASM is a collection of technologies that allow programs in various languages to not only be run in others’ environments but also in a way that’s secure. Included under its umbrella are WAT, WebAssembly Text format, as well as near universal browser support.
This does mean there are two problems, one is bridging WebAssembly technologies into an Elixir project (e.g. writing a computationally expensive function in Rust and then importing over) as well as bridging Elixir into the world of WebAssembly (e.g. writing a module in Elixir to then be used in a separate program). At the time of writing this, there are no WebAssembly packages with Elixir or maintained Elixir tooling.
What is Elixir?
Elixir is a, taking from their website, “dynamic, functional language for building scalable and maintainable applications”. It’s a part of the erlang ecosystem since they both run atop of the BEAM (Erlang Virtual Machine); you could view it as being similar to how both Java and Clojure run on top of the Java Virtual Machine.
Widely known for the Phoenix framework (the Elixir version of Rails), Elixir is a nifty functional programming language if chaining together pipes in your code sounds appealing to you. Otherwise it can be appreciated for the reputable reliability of erlang with its “nine nine’s of uptime”.
In addition, both Elixir and Phoenix have consistently been reaching the top of the leaderboard for Stack Overflow’s Developer Survey (RIP Stack Overflow) and is the foundation for a rewrite of Sonic-Pi! It’s mostly fallen off WebAssembly interest due to avoiding core features like concurrency or BEAM’s complexity.
Why bring the two together?
Why not?
For a fuller answer, aside from performance gains, there are too many recent demos in the tech industry where hello worlds don’t compile or browsers don’t build.
We could harness technology for the vanity of buzzwords or we could harness technology towards implementing gaps that, otherwise, would require several hours of human engineering time. Tough choice.
What you can now do
You can use WebAssembly from Elixir! You can also transform Elixir or Phoenix projects to WebAssembly!
Don’t believe me? Install the package from hex or point your coding agent at this repo and have fun https://github.com/hdresearch/firebird/