Built with Kittine — this page is compiled Kittine (.kitty) source, not hand-written HTML or a JavaScript framework.

Docs

Getting started

Three real steps, the same ones this site's own build uses: build the toolchain, write a .kitty file, compile it to Rust.

01

Install the toolchain

Rust, the wasm32-unknown-unknown target, and either Vite (CSR) or cargo-leptos (SSR). Exact commands for both on the Install page.

02

Write a .kitty file

A component is a func that returns JSX-like markup. Signals (<{name}> >> value) declare and mutate reactive state in one construct.

03

Compile and run

kittine-compiler build src/App.kitty emits real Leptos 0.7 Rust, following every import it finds. Then cargo/wasm-bindgen/cargo-leptos take over — the exact same pipeline shown on the Rust & Leptos page.

A first component

Real, current syntax — not simplified for the example.

func Hello() {
    <{name}> >> "World"

    return (
        <div>
            "Hello, "
            <{name}>
            "!"
        </div>
    )
}

<{name}> >> "World" declares a reactive Word signal the first time it's written; a bare <{name}> inside return ( ... ) reads it reactively. No separate let vs. set keyword, and no #w type tag needed here — type inference fills it in from the "World" literal.