Hologram
Build full-stack web apps entirely in Elixir. Hologram rebuilds the Elixir runtime in the browser, so your client-side code runs as Elixir, with no JavaScript framework and no JavaScript to write.
Website: https://hologram.page
What it looks like
defmodule MyApp.CounterPage do
use Hologram.Page
route "/counter"
layout MyApp.MainLayout
def init(_params, component, _server) do
put_state(component, :count, 0)
end
def template do
~HOLO"""
<p>Count: {@count}</p>
<button $click="increment">+1</button>
"""
end
def action(:increment, _params, component) do
put_state(component, :count, component.state.count + 1)
end
end
The action runs in the browser, so the count updates instantly with no server round-trip.
Get started
If Hologram looks interesting, star the repo to follow along. It helps more Elixir developers find the project.
Community
- Elixir Forum: https://elixirforum.com/hologram
- Discord: https://discord.gg/huJWNuqt8J
- Slack: https://elixir-lang.slack.com/channels/hologram
Build in Public
- LinkedIn: https://www.linkedin.com/in/bartblast/
- X: https://x.com/Bart_Blast
- Bluesky: https://bsky.app/profile/bartblast.com
Sponsors
Main Sponsor
Milestone Sponsor
Performance Sponsor
Innovation Partner
Framework Visionary
- @absowoot
- Robert Urbańczyk, @robertu
- Moss Piglet, @moss-piglet
Early Adopter
- Daniel Calancea, @D4no0
- @pasila
- Jonatan Männchen, @maennchen
- James Harton, @jimsynz
- Ian Asaff, @montague
- Max, @Makesesama
Thank you to all other sponsors for supporting the project!
If you find Hologram useful and would like to support its development, consider becoming a sponsor! Your contributions help improve the project and keep it alive.
Thank you for your support!