Hacker Newsnew | past | comments | ask | show | jobs | submit | bartblast's commentslogin

Oh yeah, I remember! We'll get there :) Hope you'll give Hologram another spin sometime soon!

I definitely will!

It depends on what you're doing. I've been in Elixir web dev for about 7 years and never really needed to write or understand Erlang, outside of my work on Hologram. That said, Erlang is always there under the surface - it "leaks" into Elixir in places if you look at the stdlib, and understanding it gives you a better mental model of the whole platform. I'd say you don't need it on a daily basis for most Elixir work, but the runtime and OTP are incredible pieces of engineering, and getting to know Erlang better will only make you stronger in this ecosystem.

Just wanted to echo that my experience is almost identical (production elixir/phoenix for 10 years), and also very rarely touch erlang. But it does leak in every now and then.

And it'll feel less intimidating once you code in elixir, but I still find it more cryptic and less approachable the 3-4 times I've had to splunk into erlang to debug something in the last decade.


Two big reasons: bundle size - few hundred KB uncompressed vs multiple MB already compressed with WASM. And the DOM lives in the JS world - WASM can't touch it directly and has to cross the JS bridge with serialization overhead every time.

On top of that, since the browser platform has different characteristics, you can surgically drop down to native JS functions instead of compiling and bundling everything. For example, things like Unicode code point databases are already built into the browser - no need to ship them in your bundle when you can just call into the native APIs. The compiled output is also readable which helps with debugging.

For web apps generally JS is the better target IMO - you want the smallest possible bundle and the app reacting as quickly as possible on load.


Both! Right now the focus is on enabling rich UIs with pure Elixir running in the browser. But eventually Hologram could be able to act as an Erlang node in the cluster as well.

Not currently, but expanding to Erlang is definitely possible down the road. I've actually been considering adding an Erlang compiler since some Erlang functions that the Elixir standard library depends on could be compiled automatically instead of being ported by hand.

Really appreciate it! Would love for you to give it another go - a lot has improved since then. If you run into any issues or have ideas for how things could be better, don't hesitate to reach out. Happy to help!

Thank you! The Elixir -> JS compiler is currently coupled with the framework - it's a custom thing, not a separate dependency.

Re the Gleam comparison: I don't know Gleam's implementation in detail so someone correct me if I'm wrong, but as I understand it - Gleam compiles to fairly readable JS with a minimal prelude, and deliberately treats the two targets as having different concurrency semantics. It doesn't try to replicate BEAM processes or OTP in JavaScript, instead using JS's native promise-based async. The upside is zero runtime overhead and clean JS interop.

Hologram takes the opposite approach - we're iteratively reimplementing the Erlang runtime in the browser, with the goal of having full semantic parity eventually. The tradeoff is a heavier runtime, but the benefit is that the same Elixir code can run on both server and client with consistent behavior.


you could have a lighter runtime by implementing a bytecode interpreter in wasm.

To clarify - Hologram's runtime is heavier than Gleam's, but that doesn't mean it's heavy. The compiler does tree-shaking, bundling only the code your app actually uses, so you're not shipping the entire reimplemented runtime to the browser.

As for the WASM bytecode interpreter idea - you'd run into the same problems I described in my earlier comment. Even a minimal interpreter compiled to WASM tends to land in the multi-MB range once you include enough of the runtime to be useful. You still can't touch the DOM from WASM, so every UI update crosses the JS bridge with serialization overhead. You lose the ability to surgically call native browser APIs (like built-in Unicode support) instead of bundling your own. And you lose readable output, which matters for debugging.


gleam doesn't run a bytecode interpreter in wasm! i think it compiles straight to rust? which is why there are some leaky as hell abstractions.

Gleam is written in Rust but compiles to Erlang (BEAM) or JavaScript - I mentioned the JS compilation in my previous comment. The WASM point was a response to your bytecode interpreter suggestion, not about Gleam.

Hologram's journey just took a significant leap forward: Curiosum is coming on board as the Main Sponsor, and I'm joining their team to work on Hologram full-time.

Hologram compiles Elixir to JavaScript to run in the browser, enabling full-stack development in pure Elixir - and soon, Local-First applications.

I'm deeply grateful to Curiosum's founders for believing in this vision and going all in.

Read more about what this partnership means for Hologram: https://hologram.page/blog/hologram-partners-with-curiosum


Great news for Hologram: the Erlang Ecosystem Foundation has awarded a stipend to support key development milestones!

I’m deeply grateful to the EEF for their support of the project vision.

Read more about what this means for Hologram and learn about the EEF’s mission: https://hologram.page/blog/hologram-awarded-eef-stipend

(Hologram compiles Elixir to JavaScript to run in the browser, enabling full-stack development in pure Elixir - and soon, Local-First applications.)


Hi Elixir friends,

I'm Bart Blast, creator of Hologram. I wanted to share an update that's been on my mind lately. For those unfamiliar, Hologram is a full-stack Elixir web framework that automatically transpiles Elixir to JavaScript, bringing the language to the browser, see: https://hologram.page

After nearly 3 years of full-time work on Hologram, I've reached a crossroads. I believed deeply enough in this vision to dedicate years of my life to it - and that belief has been validated. We're seeing real-world production use, endorsements from community leaders, and genuine excitement from the ecosystem. But to keep this momentum going, I need to find a sustainable path forward.

Right now, I'm working 60+ hour weeks trying to balance contract work with Hologram development. It's not sustainable, and frankly, neither the codebase nor the community deserves a maintainer who's stretched this thin.

I've put together a post that explains where we are, where we're going, and how you can help if Hologram's vision resonates with you: https://hologram.page/blog/seeking-sustainable-sponsorship

Even if sponsorship isn't an option for you right now, sharing the post or talking about Hologram in your networks helps more than you know.

Thank you for reading. Let's build the future of Elixir web development together!

- Bart


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: