Skip to content

Elixir in the Browser: Bart Blast on Hologram

July 24, 2026 · 45 min

Show notes

What if instead of making your server smarter to handle the browser, you just ran your Elixir in the browser instead?

That's the bet Bart Blast has been making for six years - three of them full time. Hologram is a full-stack web framework that compiles Elixir to JavaScript and rebuilds the Erlang runtime in the browser: pattern matching engine, OTP guarantees, boxed types, all of it. No JavaScript to write. No round trip on every interaction. No inconsistent state between client and server.

This is the fourth episode in the podcast's ongoing series on where state should live - following Chris McCord on durable servers, Adi Iyengar on building a web framework, and Brooklyn Zelenka and Robert Virding on local-first. Bart made the opposite bet to Live View.

Topics include:

  • ​why Bart spent six years building this instead of reaching for existing tools - and why the answer is "plain frustration"
  • ​the latency ceiling you can't engineer past on the server, and why bandwidth improvements don't help
  • ​how Hologram actually works: pulling the expanded AST from compiled BEAM files, normalizing it, lowering to an IR, and encoding to a JS runtime - including a real pattern matching engine and boxed types
  • ​why Hologram doesn't merge front end and back end - there's still a clear separation, just one language crossing it
  • ​actions vs. commands: the two behavior primitives and which side of the client/server boundary each lives on
  • ​where Live View wins over Hologram - and Bart is honest about this (private logic, data-heavy apps, maturity)
  • ​how Hologram compares to Luster (Gleam's equivalent) and why neither is competing with the other
  • ​when you should not use Hologram yet
  • ​where it's all heading: local-first sync layer, mobile, desktop, and eventually a single Elixir codebase for everything

Recorded June 18, 2026.

Resources mentioned:

  • ​hologram.page
  • ​hologram.page/newsletter
  • ​GitHub: barb/hologram
  • ​Discord: hologram community
  • ​Hologram tag on Elixir Forum
  • Website: https://hologram.page
  • GitHub: https://github.com/bartblast/hologram
  • Newsletter: https://hologram.page/newsletter
  • Discord: https://discord.com/invite/huJWNuqt8J
  • Elixir Forum: https://elixirforum.com/hologram
  • X: https://x.com/Bart_Blast
  • LinkedIn: https://www.linkedin.com/in/bartblast/
  • Bluesky: https://bsky.app/profile/bartblast.com
  • Slack: https://elixir-lang.slack.com/channels/hologram

All episodes of BEAM There, Done That

Settings

Display

Language

Decides which stations you see first on the home page.

History

Recently played stations and episodes and your latest searches are only stored in this browser.

Notifications

A short notice when a podcast you follow has a new episode. Turn off single podcasts with the bell on their page.

Account

Save favorites – in the app and on the website.

Keyboard shortcuts

/
Open search
Space
Play or pause
← →
In the player: back 15 s, forward 30 s (episodes) · in a row: next tile
↑ ↓
In a row: target within the tile
Home / End
In a row: first or last tile
Esc
Close window or menu
?
This overview
Now playing

Go to station page

Play next

    Add episodes with “Play next” – they play after the current episode.