Release 0.1.4 - 2026-08-08

This release introduces a configuration mechanism, and replaces Handlebars-based client-side rendering of Handlebars templates with generated Leptos components. This release also replaces actix-router with leptos_router.

Read the full change log here.

Configuration

A src/config.rs file now exists in every application, which defines a function that is responsible for returning a JSON object:

// src/config.rs
pub fn new() -> serde_json::Value {
    serde_json::json!({
        "api_url": option_env!("API_URL").unwrap_or("http://localhost:3000"),
    })
}

This configuration is compiled into your application at build time, ensuring your WASM module contains a fully sealed configuration for strict release versioning.

The app configuration is also passed into adapters through their init() fn, which is how they are able to read settings such as the API server URL.

Views Become Leptos Components

Handlebars is no longer a runtime dependency, and is now only used during build time. At build time, Handlebars templates are translated into Leptos components.

Given this src/templates/application.hbs template:

<h1>Welcome to Auric SPA!</h1>
{{outlet}}

The following Leptos component is generated:

$ make
$ cat src/generated/views/application.rs
#[component]
pub fn ApplicationView() -> impl IntoView {
    view! {
        <Router>
            <Routes fallback=|| "Not found.">
                <Route path=path!("/") view=IndexView />
                <Route path=path!("/*any") view=|| view! { <h1>Not found.</h1> } />
            </Routes>

            <h1>Welcome to Auric SPA!</h1>
            <div />
        </Router>
    }
}

©2026 Megalithic LLC | Website | Guide | GitLab | Contact