Frontend tooling for Phoenix that runs inside the BEAM. Build JavaScript, TypeScript, Vue, Tailwind CSS, npm packages, and Iconify SVGs from Elixir — without managing Node.js toolchain processes in your app.
mix igniter.install volt
mix phx.serverVolt is the center of the stack: a Vite-level asset pipeline with dev server, HMR, Tailwind, production builds, and framework support powered by Rust NIFs and embedded JavaScript runtimes.
| Project | What it does | Hex |
|---|---|---|
| volt | Elixir-native frontend build tool: dev server, HMR, Tailwind CSS, JS/TS, Vue/Svelte/React/Solid, production builds |
| Project | What it does | Hex |
|---|---|---|
| phoenix_iconify | Compile-time discovered Iconify SVG components for Phoenix and LiveView: <.icon name="lucide:settings" /> |
|
| iconify | Core IconifyJSON parser, fetcher, alias resolver, transformer, and SVG renderer for Elixir | |
| phoenix_vapor | Vue templates compiled to native %Phoenix.LiveView.Rendered{} structs |
| Project | What it does | Hex |
|---|---|---|
| oxc | JS/TS parsing, transforming, bundling, formatting, linting, and minification through OXC | |
| vize | Vue SFC compilation, Vapor IR, and CSS tooling through Vize | |
| oxide_ex | Tailwind CSS content scanning and candidate extraction through Tailwind Oxide | |
| quickbeam | QuickJS runtime for the BEAM with Web APIs backed by OTP | |
| npm | npm package resolution and installation from Elixir | |
| npm_semver | npm-compatible semantic version ranges for Elixir |
Phoenix app
├── volt — asset pipeline, dev server, HMR, production builds
│ ├── oxc — JS/TS compilation and linting
│ ├── vize — Vue SFCs and CSS tooling
│ ├── oxide_ex — Tailwind content scanning
│ ├── quickbeam — embedded JS runtime for tools
│ └── npm — package resolution and install
├── phoenix_iconify — server-rendered Iconify SVG components
│ └── iconify — IconifyJSON parsing and SVG rendering
└── phoenix_vapor — Vue templates → %Phoenix.LiveView.Rendered{}
├── vize — Vapor IR compilation
└── quickbeam — JS expression evaluation
Phoenix apps should not need a pile of external watchers, binaries, and JavaScript toolchain glue to get modern frontend ergonomics. Elixir Volt packages keep the toolchain close to the app, supervised by the BEAM, configurable with Elixir, and easy to compose with Phoenix.