Astral is a static site generator for Elixir projects. It keeps the site layer in Elixir while using Volt for frontend assets.
Elixir site configuration
Astral project configuration lives in astral.config.exs:
import Astral.Config
layouts do
default "default.html"
end
assets do
entry "app.ts"
endBecause the config is Elixir, you can share ordinary functions, modules, and data structures with the rest of your project.
Static output
Astral builds plain files:
dist/index.html
dist/about/index.html
dist/assets/manifest.jsonThere is no server runtime requirement after mix astral.build.
Volt-powered assets
Astral delegates TypeScript, CSS, imported assets, dev serving, and HMR to Volt. That means the site layer does not need to become a frontend build tool.
HEEx-first templates
.astral templates use Phoenix HEEx syntax for interpolation, attributes, :if/:for, components, and slots while rendering static HTML.
Content features
Astral includes Markdown pages, schema-backed collections, static pagination, feed and sitemap plugins, generated routes, and plugin hooks for site-specific behavior.