bartblast
Hologram v0.5.0 released!
I’m excited to announce Hologram v0.5.0, a major evolution of the full-stack Elixir web framework! This release brings massive performance improvements - we’re talking execution times improved from milliseconds to microseconds in core client-side operations, making it fast enough for real-time interactions like mouse move events.
Key highlights:
- Complete bitstring rewrite with ~50x rendering speed improvements!
- Comprehensive session and cookie management
- Live reload functionality for enhanced DX
- Incremental compilation (2x-10x faster builds)
- New pointer and mouse move events
- HTTP-based transport layer
- CRDT support for future distributed features
Full release notes: Hologram v0.5.0 Released! - Hologram
Check out the SVG Drawing Demo that showcases smooth, responsive drawing using the new pointer move events - it really demonstrates the performance leap!

With over 950 commits since v0.4.0, this release delivers significant architectural enhancements while maintaining the unique developer experience that makes Hologram special.
Special thanks to my current GitHub sponsors: @D4no0, @Lucassifoni, and @sodapopcan! ![]()
Support Hologram’s development: If you’d like to help accelerate Hologram’s growth and make releases like this possible, consider becoming a GitHub sponsor. Every contribution helps dedicate more time to new features and community support!
Stay in the loop: Don’t miss future updates! Subscribe to the Hologram Newsletter for monthly development milestones, ecosystem news, and community insights delivered straight to your inbox.
Trending in News & Updates
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #elixirconf-us
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #performance
- #security










First 10 of 34 Posts!
bartblast
ken-kost
sezaru
Sorry if this was asked before, but do you plan to make hologram easily integrate with a LV project?
I’m very interesting in testing hologram out, but it is hard to justify the time to do that now since I don’t have a new project to use it, and at the same time, I don’t plan in rewrite all my LV projects in Hologram. So, having a way to easily integrate it with a LV page (maybe a way to add hologram components or something like that? Dunno) would be amazing and probably open doors to easily solve lateny critical parts to a LV project.
Eiji
I have already suggested something like that, but it was not accepted. Also looks like there would be no support for
:forand siblings, so you have to write the templates inSvelte-like syntax. For me this is one more important as in complex components I don’t want to have “half” of the indentation levels to be added by control flow (like if, for etc.) …What I’m personally looking for is some way to communicate with page asynchronously. Looks like in the medium-term goal there would be:
Preferably I would like to use
send/2andProcess.send_after/3depending on a case. Simply everything that happens in background, but affects the rendering like bot moves every pre-configured time, sending data fromRepo.streamwithout querying all the rows or paginating them, next background music event and many, many more …jam
Congrats Bart! Looking great.
dimitarvp
Congratulations on the release.
One thing that I’m taking away from the changelog is that it might be time to start taking some parts of Hologram and release them as individual specialized libraries, maybe. I’m periodically taking a look and there seems to be some mighty useful Elixir pieces in there.
I’m not saying this to give you homework. But it might help adoption.
venkatd
Very cool! I would be curious about the journey of what went into optimizing the performance of Hologram.
Eiji
That could be done anytime. If author decides it should be done right before
1.0.0release. I believe there are too many important parts that blocks people from usingHologramright now. We should rather allow the author focus on them.garrison
I disagree with this. The goal should be something like JSX where there is no template syntax at all and the templates are actually constructed with JS (with the syntax extended to make it look nicer). The
:if/:forsyntax, which afaik was a hack to make slots work, was a huge step backwards in this respect for Phoenix. The original eex/heex “templates” are actually full Elixir with text/html interspersed and thus far more powerful.Templating languages are always degenerate. As a simple example, why is there no
:caseattribute? The case construct spans (possible) elements, so it doesn’t even make sense as an attribute. The control flow is a higher level construct than an individual element and can’t be constrained to one. It’s a mistake to go down this path at all.It’s unfortunate because
caseis one of Elixir’s best features and I strongly favor it overif, even in heex.With that said, it seems like Hologram’s templates are in fact actually templates rather than code, so that’s not any better if so.
(Incredible work on the release BTW, that’s a lot of commits!)
bartblast
Video courses are coming soon in about 2-3 weeks.
The demo is a part of the website code which is currently private, but here’s the most important code:
init/3 (state initialization) and actions (event handling):
and the most important part of the template:
Last Post!
bartblast