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

Playground

Compile .kitty to Rust, right here

Pick a step on the left, or edit the source directly — the panel on the right is the real, literal output of kittine-compiler's own lex → parse → codegen pipeline, compiled to WebAssembly and running entirely in your browser. No server round trip, nothing sent anywhere. This is the single-file path only: import isn't resolved here, the same scope kittine-compiler build src/App.kitty --output /dev/stdout would give you for one file with no dependencies.

Honest exception: the tutorial-step buttons and the compile button below are a few lines of hand-written JavaScript, not Kittine's own onClick/onInput bindings — the same honest exception documented in the language reference, for the same reason: dynamically loading a separate WebAssembly module's own generated glue has no Kittine syntax yet (see the Roadmap). Every tutorial snippet itself is real, verified Kittine — most are taken directly from the language reference's own examples.

Loading the tutorial…

.kitty source
generated RustLoading compiler…
Loading the compiler's WebAssembly build…