POWERED BY MOONBIT

The Future of UI is
Light & Native

Luna isn't just another framework. It's a shift in how we build. Zero-runtime overhead, type-safe, and compiled to ultra-compact WebAssembly.

Instant Performance
Wasm Native
Type Safety

Community Love

Developers are building the future with Luna.

mizchi
Luna.mbt is actually insane. The performance metrics are off the charts compared to traditional JS frameworks. Finally, a true Wasm-native approach that feels ergonomic.
Just migrated our marketing site to Luna + Sol. The Lighthouse score went from 82 to 100 instantly. The developer experience with MoonBit is surprisingly refreshing.
Zero runtime overhead is not a buzzword here. The bundle size is tiny. Luna proves that WebAssembly is ready for UI development.
I was skeptical about writing UI in a non-JS language, but Luna's signal system makes so much sense. It feels like SolidJS but compiled.
mizchi
Luna.mbt is actually insane. The performance metrics are off the charts compared to traditional JS frameworks. Finally, a true Wasm-native approach that feels ergonomic.
Just migrated our marketing site to Luna + Sol. The Lighthouse score went from 82 to 100 instantly. The developer experience with MoonBit is surprisingly refreshing.

Fine-grained Reactivity

No virtual DOM. No diffing. Direct DOM updates at the signal level deliver real performance gains without the overhead.

Island Architecture

Ship 0KB of JavaScript by default. Hydrate only the interactive parts of your page with smart loading strategies.

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. A sound type system that compiles to ultra-fast WebAssembly.

Smart Hydration Triggers

Ship less, do more. Control exactly when your components wake up.

client:load

Immediate

Hydrates as soon as the page loads. Best for critical UI elements.

client:visible

Lazy

Hydrates only when the component enters the viewport. Perfect for heavy charts.

client:idle

Optimized

Hydrates when the main thread is free. Ideal for non-critical interactivity.

The Luna Ecosystem

A unified suite for the modern web.

Sol SSG

Static Site Gen (SSG)

The foundation for high-performance documentation and marketing sites. Built-in Island support.

Sol

Full-stack Framework

Step up to full SSR and ISR when you need it. Progressive architecture that scales.

~0.8 KB Hydration Loader (gzipped)
~1.2 KB Island Runtime (gzipped)
60 FPS 100x100 Grid Demo
~0 ms Runtime Overhead

Developer Experience

Familiar syntax, compiled performance.

src/components/counter.mbt
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.