# Hologram compiles Elixir components down to JavaScript

> Hologram is a full stack Elixir web framework where client-side code is written in Elixir and compiled to JavaScript, so a UI does not need a separate JavaScript framework to be interactive. The project is at v0.12.0, develops on a branch called dev rather than main, and its README is mostly a sponsorship page, so the repository's own tooling files tell you more than the prose does.

**bartblast/hologram** — Full stack Elixir web framework that intelligently compiles Elixir client-side code to JavaScript

- Repository: https://github.com/bartblast/hologram
- Website: https://hologram.page
- Stars: 1,534 · Forks: 117
- Language: Elixir
- License: Apache-2.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/bartblast-hologram

## One language, compiled to two targets

The project's one-line pitch is that it builds rich interactive UIs entirely in Elixir using a declarative component system, and that the client-side code is intelligently compiled to JavaScript. The final clause in that sentence is the whole pitch: you get modern frontend behaviour without relying on any JavaScript framework.

That position is unusual. The mainstream options for an Elixir backend are either a separate front end talking JSON to an API, or a server-rendered system where interactivity is delivered through its own runtime. Hologram takes a third route: you write components in Elixir, and the framework decides what JavaScript has to exist to make them work in the browser.

The cost of that route is the one the repository makes visible. Compiling Elixir to something a browser runs means the component library is the contract. When the compiler changes, your components change behaviour, and there is no ecosystem of third-party components to fall back on, because components here are Elixir modules from this project rather than a React or Vue package someone else maintains.

So the fit is narrow and worth stating plainly: teams who have already committed to Elixir across the stack, and who would rather not maintain a JavaScript build, a component library and an API contract alongside their backend.

## The quality gate is visible in the repository root

Hologram's README is a sponsorship page with a short description at the top, so the configuration files at the repository root are where the engineering practice shows.

The root includes `.credo.exs`, `.doctor.exs`, `.recode.exs`, `.check.exs`, and `.sobelow-conf`.

The root also includes `lefthook.yml`, `.formatter.exs`, `.prettierignore`, `.tool-versions`, and `.coderabbit.yml`.

A `benchmarks/` directory exists at the root, and `SECURITY.md` plus `CONTRIBUTING.md` complete the governance set. For a project below 1.0, this is a heavier investment in tooling than the version number suggests.

## Documentation written for readers who are also language models

Three files at the root are unusual enough to call out: `llms.txt`, `llms-full.txt` and `usage-rules.md`.

The repository provides both `llms.txt` and `llms-full.txt`, alongside a separate `usage-rules.md` file.

Alongside those, there is a `docs/` directory and a `reference/` directory, and the project runs its own site at hologram.page. Community discussion happens on the Elixir Forum, Discord and the Elixir language Slack channel, which is a reasonable sign of an embedded project rather than a standalone tool.

The practical read for an engineer: documentation is not the weakest part of this project, and the entry point you want is the site plus `usage-rules.md`, not the GitHub README.

## Version 0.12 on a branch called dev

The default branch is `dev`, not `main`, and that is worth pausing on. It tells you the project's trunk is the development line rather than a stable one, which is a defensible choice for a framework below 1.0 and an inconvenience for anyone who wants to follow along.

The tags show steady output: v0.11.0 on 2026-08-05, v0.11.1 on 2026-08-27, and v0.12.0 on 2026-10-08.

The last push was on 2026-10-16, after the v0.12.0 tag, so development on dev is already ahead of the newest release. Pinning to v0.12.0 gets you a known state; tracking dev gets you the current work with no stability promise.

The licence is Apache-2.0, with a LICENSE file at the root. For a framework whose components end up in your rendered HTML and whose compiled JavaScript ends up in your users' browsers, a permissive licence with an explicit patent grant is the easy case, and there is no reciprocal obligation on your application code.

## Funding is the maintenance signal to read

The README is a sponsor page, and for a small framework that is not vanity. It tells you who is paying for the work.

Curiosum is listed as the main sponsor, the Erlang Ecosystem Foundation as the milestones sponsor, and Evo Store as the performance sponsor. That last one is the interesting label: naming a sponsor by the area it funds implies the project has a performance budget, which lines up with the `benchmarks/` directory at the root and with the project describing its goal as modern frontend capabilities rather than a hobby experiment.

Below that are individual tiers, from an innovation partner through framework visionary to early adopter, plus an open call to sponsor. The README closes by thanking sponsors and contributors and asking for support to keep the project alive, which is a candid statement about the funding model.

This is the kind of information you cannot get from a version number. A framework with named sponsors and a foundation behind its milestones has continuity that a single maintainer project cannot promise. It also tells you something about who the users are: companies that build Elixir applications for a living, which is consistent with the tool being a serious alternative to a separate JavaScript front end rather than a teaching project.

## Conclusion

Adopt Hologram if you are building an interactive UI in Elixir and want one language across the stack, and evaluate it on the documentation site rather than the README. Do not adopt it for a production system that needs a stable API contract, since the default branch is dev and the newest release is v0.12.0 from 2026-10-08. Verify first that your dependencies satisfy what mix.exs declares, read usage-rules.md before generating code with a model, and check SECURITY.md since the project maintains an explicit disclosure channel.

## FAQ

### What is Hologram?

It is a full stack Elixir web framework where client-side code is written in Elixir and compiled to JavaScript, built on a declarative component system, with no JavaScript framework required in the browser.

### How do I install Hologram?

The README carries no installation command and points to the project website at hologram.page for guides, with a docs/ directory and reference/ directory in the repository. The build itself is a standard Elixir project described by mix.exs and mix.lock.

### What is the latest version of Hologram?

v0.12.0, released on 2026-10-08, following v0.11.1 on 2026-08-27 and v0.11.0 on 2026-08-05. The default branch is dev rather than main.

### What static analysis does the Hologram project run?

The root includes `.credo.exs`, `.doctor.exs`, `.recode.exs`, `.check.exs`, `.sobelow-conf`, `lefthook.yml`, and `.tool-versions`.

### Who funds Hologram?

The README lists Curiosum as main sponsor, the Erlang Ecosystem Foundation as milestones sponsor, and Evo Store as performance sponsor, with individual sponsor tiers below and an invitation to sponsor the project.

## Sources

- [bartblast/hologram on GitHub](https://github.com/bartblast/hologram)
- [License: Apache-2.0](https://github.com/bartblast/hologram/blob/dev/LICENSE)
- [Project website](https://hologram.page)
- [README](https://github.com/bartblast/hologram/blob/dev/README.md)
- [Releases](https://github.com/bartblast/hologram/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bartblast-hologram
