bartblast
Build in Public posts for Hologram
Hey folks,
I’ve started publishing Build in Public posts about Hologram, roughly 1-2 times a week. They cover the design thinking behind framework features as they happen: pivots, trade-offs, the messy middle of API design before things ship, and so on.
First one is up now about the realtime layer I’ve been working on the last few weeks.
If that’s the kind of thing you want to follow:
- LinkedIn: https://www.linkedin.com/in/bartblast/
- X: @Bart_Blast
- Bluesky: @bartblast.com
Most Liked
bartblast
No worries, good thing to ask!
Action dispatch from JS already works today via Hologram.dispatchAction("name", "target", params) - that’s the supported path. See the “Dispatching Actions from JavaScript” section in the docs: JavaScript Interop.
Calling arbitrary Elixir functions from hand-written JS (outside the action-handler model) isn’t planned though. Hologram doesn’t just transpile - it’s a full compiler. Among other things, it analyses the call graph at compile time and ships only the Elixir code each page actually needs (which is why Hologram bundles stay so small). A JS call site referencing an arbitrary Elixir function is opaque to that analysis, so the function (or its transitive deps) could get tree-shaken out of the bundle. Action dispatch sidesteps this because actions are first-class compile-time entry points the compiler already traces.
The reverse direction - Elixir → JS - is mature today via the Hologram.JS module: js_import, JS.call, JS.get, JS.new, the ~JS sigil, etc. (Same docs page covers both directions.)
hxgdzyuyi
cool ![]()
![]()
![]()
DaAnalyst
Thank you!
Popular in News & Updates
Other popular 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
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








