Rekindle publishes production artifacts from the same Mix entry point used during development. Web and desktop publication use target-specific output formats while sharing configuration and Cargo execution.
Build a release artifact
Use the target's configured Cargo release profile:
mix rekindle.build web --release
mix rekindle.build desktop --release
See Web Target and Desktop Target for their output layouts and runtime requirements.
Programmatic builds
The Mix tasks and Elixir API use the same build pipeline:
{:ok, result} =
Rekindle.build(:web,
otp_app: :my_app,
profile: :release
)
result.artifact
result.metadata.manifestRekindle.build/2 returns typed errors for configuration, Cargo, toolchain, and
publication failures.
Phoenix Web entry
Render the selected integration's host markup before loading the logical Web entry module. For example, an egui application can use this HEEx:
<%= Phoenix.HTML.raw(Rekindle.Phoenix.web_host(:egui)) %>
<script
type="module"
src={Rekindle.Phoenix.web_entry_path(MyAppWeb.Endpoint)}
></script>web_host/1 returns fixed trusted markup owned by the integration. GPUI returns
an empty string, egui returns <canvas id="the_canvas_id"></canvas>, and Slint
returns <canvas id="canvas"></canvas>. web_entry_path/1 resolves through the
endpoint's static manifest after phx.digest; loading that module starts the
selected immutable Web generation.
The exact Rekindle generation remains under .rekindle/release. Its
priv/static copy is deployment output, so Phoenix can add digested and
compressed derivatives without changing the canonical generation identity.