The Future of UI is
Light & Native
Fine-grained reactive UI for MoonBit. Type-safe end to end, compiled to JavaScript, and small: a counter app is 5.4 KB min+gzip.
Fine-grained Reactivity
Signal updates write to the DOM directly, touching only the nodes that changed instead of re-rendering and diffing a whole tree.
Island Architecture
Pages ship about 2 KB of inline JavaScript before any island loads. Interactive parts hydrate on their own schedule.
WebComponents First
Leverage the platform. First-class support for WebComponents SSR and Hydration, moving beyond framework silos.
MoonBit Type Safety
Catch errors before they happen. MoonBit's type system covers markup, props and state, and compiles to JavaScript.
Smart Hydration Triggers
Ship less, do more. Control exactly when your components wake up.
Immediate
Hydrates as soon as the page loads. Best for critical UI elements.
Lazy
Hydrates only when the component enters the viewport. Perfect for heavy charts.
Optimized
Hydrates when the main thread is free. Ideal for non-critical interactivity.
The Luna Ecosystem
A unified suite for the modern web.
Static Site Gen (SSG)
The foundation for high-performance documentation and marketing sites. Built-in Island support.
Full-stack Framework
Step up to full SSR and ISR when you need it. Progressive architecture that scales.
Developer Experience
Familiar syntax, compiled performance.
import { createSignal, createEffect } from "@luna_ui/luna"
pub fn counter() -> Unit {
let (count, setCount) = createSignal(0)
// Direct DOM update - No VDOM diffing
createEffect(fn() {
console.log(count.value())
})
// Typesafe updates
setCount(1)
setCount(fn(c) { c + 1 })
}
Ready to build the future?
Join developers building ultra-performant UI with Luna and MoonBit.