Signals-Based Web Apps
Pure Julia
Build interactive web applications with fine-grained signals, server-side rendering, and WebAssembly islands. Signals architecture originated by SolidJS, compiled to WASM following Leptos (Rust), with Astro-style islands and view transitions.
0
doubled 0Open your browser console (F12) to see Julia's create_effect → console.log compiled via WasmTarget.jl
using Therapy
@island function InteractiveCounter(; initial::Int = 0)
count, set_count = create_signal(initial)
doubled = create_memo(() -> count() * 2)
create_effect(() -> js("console.log('count:', $1, 'doubled:', $2)", count(), doubled()))
return Div(
Div(
Button(:on_click => () -> set_count(count() - 1), "-"),
Span(count),
Button(:on_click => () -> set_count(count() + 1), "+")
),
Span("doubled ", Span(doubled))
)
endFine-Grained Signals
Leptos-style signals that update only what changes. No virtual DOM, no diffing.
SSR + Hydration
Server-side rendering with islands architecture. Static by default, interactive where needed.
WebAssembly Compilation
Compile Julia to compact inline Wasm via WasmTarget.jl. Tiny per-island modules, no framework runtime.