u/BartBlast

▲ 18 r/elixir

Hologram v0.12: Faster Compiles, Smaller Bundles, and More

Hologram v0.12 is out! :)

New to Hologram? It's a full-stack web framework where you write everything in Elixir, including the code that runs in the browser. That code runs on a port of the Elixir runtime, so it behaves the same as it would on the server.

This release started with an app Hologram couldn't build. Evo Store has one with over 9,000 Elixir modules, and v0.11.1 just ran out of memory on it. So most of this release went into the compiler.

I went in expecting one big bug. There wasn't one. The compiler was doing a lot of work it didn't need to, in about two dozen places, and none of it showed until an app got that big. By the end I'd pretty much rewritten the call graph analysis and the bundling pipeline.

On that same app, mix compile with nothing changed now takes about a second. It used to take 107. Saving a file rebuilds only the pages your edit reaches, and the tab you're looking at goes first.

Bundles got a lot smaller too. Struct code used to ship with every page that might ever see the struct. Now the browser fetches it when one shows up. That took the runtime bundle from 5.6 MB to 660 KB, which is 133 KB gzipped in production.

A few things that aren't about performance: props get validated now, at compile time when the compiler can see the value. Actions can read props straight off the component. And a component's actions run one at a time, in the order you dispatched them.

There's still a lot left to speed up, rendering included, so expect more of this. If you've got a big app on Hologram, I'd love to hear what your numbers look like after upgrading. And ping me if anything looks weird.

Huge thanks to @olivermt, who let me profile against the real app and reported a good chunk of what got fixed. And to everyone else who filed bugs and feature requests - you're all credited by name in the blog post.

Thanks to our sponsors for making sustained development possible: Curiosum (Main Sponsor), Erlang Ecosystem Foundation (Milestone Sponsor), Evo Store (Performance Sponsor), and our GitHub sponsors - Innovation Partner: @sheharyarn, Framework Visionaries: @absowoot, @robertu, Moss Piglet, and all other GitHub sponsors.

Full details in the blog post: Hologram v0.12: Faster Compiles, Smaller Bundles, and More

Website: https://hologram.page

u/BartBlast — 8 days ago

Hologram: Building Local-First Apps in Pure Elixir (ElixirConf US 2026 talk)

Hey folks! The recording of the talk I gave at ElixirConf US 2026 a few days ago is already up.

https://www.youtube.com/watch?v=jdg_UrLp0bU

The talk is a follow-up to my Malaga talk from April, which was mostly about the local-first problem and where sync engines stand on it today. Over the summer I built the local-first data layer for Hologram, my framework for full-stack web apps in pure Elixir, and this time I got to show it working. It isn't released yet, it's still on a branch.

First there's a demo, a trip planner in two browser windows. I switch the wifi off in one of them, add a couple of stops, switch it back on, and the other window catches up.

After that I go through how it works. The compiler already walks each page's call graph to decide what code to ship, so it also works out what that page needs to sync, with nothing for you to configure. And when two people edit the same row, the merge happens per column, no CRDTs involved.

Code for the demo app: https://github.com/bartblast/hologram_offgrid

The rest of the ElixirConf US 2026 talks are available with a video pass: https://ti.to/elixirconf/2026/with/qva5vpgkamc

youtube.com
u/BartBlast — 1 month ago
▲ 5 r/elixir

Hologram v0.11: Regular Expressions, Client Stacktraces, and More

Hologram v0.11 is out! :)

New to Hologram? You write the entire app in Elixir, templates, event handlers, client-side state and all. The Elixir runtime itself was rebuilt to run in the browser, so client-side code behaves exactly as it would on the server. Local-First apps are where this is heading.

This release is mostly about the browser catching up with the server. Elixir regexes were server-only until now, and handing patterns to JavaScript's RegExp doesn't hold up, so v0.11 ships a PCRE2 parser, translator and interpreter of Hologram's own. What comes back is what the BEAM would have given you.

Client errors now read like server errors too, same messages and same stacktraces, so __STACKTRACE__ finally holds real Elixir frames. Templates got more dynamic: a component module or an element tag name can now come from your data, and a whole map of attributes or props can be spread onto a tag. Plus umbrella project support and a fix for a DOM identity bug that could knock focus out of an input mid-typing.

Thanks to everyone who reported bugs and opened feature requests along the way. Several shaped this release directly and are credited by name in the blog post.

Thanks to our sponsors for making sustained development possible: Curiosum (Main Sponsor), Erlang Ecosystem Foundation (Milestone Sponsor), and our GitHub sponsors - Innovation Partner: Sheharyar Naseer, Framework Visionaries: @absowoot, Oban, Robert Urbańczyk, Moss Piglet, and all other GitHub sponsors.

Full details in the blog post: https://hologram.page/blog/hologram-v0-11

Website: https://hologram.page

u/BartBlast — 2 months ago
▲ 91 r/elixir

Eight months ago I asked for help funding Hologram. Here's what that built - and what comes next

Creator of Hologram here. I just published a post about the project's funding and where it goes next - the short version:

Curiosum as Main Sponsor, the EEF's milestone program and the GitHub sponsors funded the most productive stretch in Hologram's history - four feature releases this year (most of the stdlib working in the browser, JavaScript interop, a full realtime layer, events and middleware), and the first production apps have shipped.

The EEF milestone round wraps up with v0.11. A second round is on the table, and company support earmarked for Hologram through the Foundation is what unlocks it. The next stretch is local-first, baked into the framework - and whether it gets built comes down to a few companies stepping in.

Full post: https://hologram.page/blog/backing-hologram

If your company uses Elixir and might want to back open source work, the post covers what sponsoring gets you. Happy to answer anything here.

u/BartBlast — 3 months ago
▲ 38 r/elixir

Hologram: The Journey to Local-First Elixir in the Browser (my ElixirConf EU 2026 talk)

Hey folks. I'm the creator of Hologram, and my talk just went online.

Last year I made the case for Hologram - building your whole web app in pure Elixir, front end included. A lot has shipped since, and the next chapter is local-first.

So most of the talk is a tour of the local-first landscape. What the term actually means, why CRDTs guarantee convergence but not invariants. I also get into what the industry has settled and what's still unsolved. Then the edge Elixir has here that JavaScript stacks can't copy.

https://www.youtube.com/watch?v=qqpNovT7cys

youtube.com
u/BartBlast — 3 months ago
▲ 27 r/elixir

Hologram's new Local-First data layer - I'm running a full-day training on it at ElixirConf US

Hey folks - I'm the creator of Hologram, a framework for building your whole web app in Elixir, front end and all. For a while now I've been working on a Local-First data layer for it, and I'm bringing it to ElixirConf US this September - a talk, plus a full-day hands-on training the day before.

Why I'm building it: so much of a frontend isn't really UI, it's plumbing. Caching, syncing, loading and error states, wiring up state management, and that's just the short list. None of it is the actual product - it's all there because your data lives on a server and you spend your day shuffling it back and forth. The data layer takes that off your plate. You say what the data should be, and it stays in sync in the browser, offline and all. Pure Elixir, front to back.

The training is a full day where we build a real app on it together, starting from an empty project. It's the day before my talk, so you'd get your hands on the data layer before I show it on stage. It's a separate ticket from the conference.

Training: https://elixirconf.com/trainings/building-localfirst-apps-in-pure-elixir-with-hologram/

Happy to answer questions about Hologram or the training!

u/BartBlast — 3 months ago
▲ 59 r/elixir

Hologram v0.10: Events, Middleware, and More

Hologram v0.10 is out - now with a proper event system and server-side middleware! 🎮

New to Hologram? It's a framework for full-stack web apps written entirely in Elixir, no JavaScript to write. The Elixir runtime runs in the browser, so the same language powers the client and the server. Local-First is on the roadmap.

This release is mostly about events. The client-side event system grew up. You can now handle keyboard, scroll, resize, click-outside and scroll-edge events, bind handlers to the window and document, and debounce or throttle the noisy ones. It all lives in your templates and gets checked at compile time.

To show it off, I rebuilt Space Invaders in pure Elixir. A full game in the browser, no game engine, tiny bundle.

There's a new server-side middleware layer too, for things like auth and request enrichment. And comprehensions and error handling (try/rescue and friends) now behave the same in the browser as on the server.

Thanks to everyone who reported the bugs that got fixed in the 0.9.x patches along the way. It genuinely helps.

Thanks to our sponsors for making sustained development possible: Curiosum (Main Sponsor), Erlang Ecosystem Foundation (Milestone Sponsor), and our GitHub sponsors - Innovation Partner: @sheharyarn, Framework Visionaries: @absowoot, Oban, @robertu, Moss Piglet, and all other GitHub sponsors.

Full details in the blog post: https://hologram.page/blog/hologram-v0-10

Website: https://hologram.page

u/BartBlast — 4 months ago
▲ 94 r/elixir

Hologram v0.9: Realtime and More

Hologram v0.9 is out! :)

New to Hologram? It's a framework for building full-stack web apps in pure Elixir - no JavaScript needed. It rebuilds the Elixir runtime in the browser, so the same language runs on both the client and the server. Local-First apps are on the roadmap.

This release brings a realtime layer - your server can now push updates to connected clients with no polling: broadcast an action, and Hologram runs the matching handler on every subscribed client, all in pure Elixir. It was the most complex feature shipped to date. The release also brings support for the with special form, AI assistant support, a new mix holo task, and more.

Special thanks to @prehnRA for implementing the with special form. Thanks to @ankhers for a fix that cuts memory usage during development, @mward-sudo for a Node.js fix, @0bvim for porting :erlang.binary_to_term/1, and @sodapopcan for optional page/component callbacks.

Thanks to our sponsors for making sustained development possible: Curiosum (Main Sponsor), Erlang Ecosystem Foundation (Milestones Sponsor), and our GitHub sponsors - Innovation Partner: @sheharyarn, Framework Visionaries: @absowoot, Oban, @Lucassifoni, @robertu, Moss Piglet, and all other GitHub sponsors.

Full details in the blog post: Hologram v0.9: Realtime and More

Website: https://hologram.page

u/BartBlast — 5 months ago
▲ 25 r/elixir

Hey folks,

Hologram UI is in the works - the official component library for Hologram (my full-stack Elixir framework that compiles Elixir to run in the browser) - and the waiting list is now open.

A common reaction when I mention this is: "Just generate it with an LLM."

But there's more to a good component than markup - accessibility, responsive design, cross-browser compatibility, and the dozen edge cases nobody remembers until someone hits them. And it's not just individual components, it's them working together: consistent API, shared design tokens, predictable behavior, reusable composition patterns. A library designed around Hologram's conventions gives you idiomatic components - not generic ones bolted on.

If rolling your own works, no reason to stop. But not everyone wants to spend time on components when they could be building their actual product.

What you get on the waiting list:

  • Early access before the general launch
  • Help shape what ships in v1 (input on which components get priority)
  • Proceeds sustain Hologram's development

Join the waiting list: https://hologram.page/ui

Curious what you'd prioritize - what components do you find yourself rebuilding most often? Forms, modals, data tables, navigation? Would love to hear what your typical Hologram (or Elixir frontend in general) project actually needs.

u/BartBlast — 5 months ago