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

Updates

What actually landed, by date

Condensed from the language repo's own CHANGELOG.md — every entry below shipped and was verified against real Leptos 0.7, not aspirational. Also available as RSS.

2026-07-23

Arrays of structs, closures, and pattern matching as an expression

  • A litter/breed name, optionally []-suffixed, is now a real prop/purr param or return type — DocEntry[] entries is a real Vec<DocEntry>.
  • Closure literals (|param, ..| expr) lower to real Rust closures — the missing piece a real .filter()/.map() needs, since Kittine had no way to write one before this.
  • pounce> now also works as an expression, not just a statement — return (pounce> result Ok(v) >> v Err(e) >> 0) unwraps a Result-shaped value and returns it in one step, closing the last open gap in error handling.
  • See it live: the Language reference page's search box is real now — a litter-typed array of doc entries, filtered by a real closure, rendered as a reactive <For>. No hand-written JavaScript.

2026-07-22

Phase 2 begins: maps, JSON, a reference operator, log levels

  • stash{ key: expr, .. } — a real String-keyed map (HashMap::from([..])), typed like an array (#n{} / #w{} / #f{}), reusing litter's own struct-literal grammar so parsing/formatting/lint all came for free.
  • Every litter/breed now derives serde::Serialize/Deserialize — round-trip through JSON (or YAML/CSV) via a plain serde_json::to_string(&value) call, no dedicated syntax.
  • A new &expr reference operator — Kittine had no way to spell a Rust reference at all before this, which blocked calling real APIs that need one.
  • warn<expr>/error<expr> join craft<expr> as real leptos::logging severity levels.
  • See it live on the Language reference page's stash/&expr cards.

2026-07-22

Reading an event handler's actual value

  • The reserved event identifier, used anywhere inside an on<Event> handler, now reads what the browser event actually carries: onInput={<{name}> >> event} mutates a signal to whatever was typed, not just a fixed literal.
  • The handler's closure only binds ev (instead of discarding it as _) when the expression actually reads event — every other handler is unaffected.
  • See it live on the Language reference page's event card.

2026-07-21

A real package manager, and a live in-browser playground

  • kittine.toml/kittine.lock plus kittine-compiler add/install/publish, backed by a real hosted registry (kittine-registry) — sha256-verified downloads, no server of its own.
  • The Playground: kittine-compiler itself, compiled to WebAssembly, compiling .kitty to real Rust entirely client-side.

2026-07-19

Phase 1 closes: traits, structs, enums, pattern matching, generics

  • claw / bare .. for .. — a real trait system, plus bounded generics (<#t: Named>).
  • litter (structs), breed (enums), pounce> (pattern matching), and single-parameter generics.
  • Scalar type tags (#n/#w/#f) became optional, inferred from body usage when omitted.
  • The type-tag sigil itself was redesigned from <<Word>>-style brackets down to #w — shorter than every Rust type it stands for.
  • A formal EBNF grammar (GRAMMAR.md) and kebab-case JSX attributes (data-*/aria-*).

2026-07-18

Real SSR, routing, and every operator this site needed

  • Server-side rendering via cargo-leptos + Axum — a second toolchain alongside Vite, zero compiler changes.
  • Routing composed from leptos_router with zero new syntax, including dynamic segments and programmatic navigation.
  • Comparisons (< <= > >= !=) and logical && / ||, usable generally, not just in conditions.
  • hold (plain local bindings), re-exports (export import), private visibility, array-typed props/returns.
  • List rendering in views (spin → a reactive <For>), component children, and a real move-conflict bug fixed by actually compiling against Leptos.

2026-07-17

Initial release: the core language

  • func components, <{name}> >> value signals, if>/orif>/else> control flow, spin loops.
  • The embedded JSX-like return ( ... ) view syntax, and craft<...> logging.
  • A VS Code extension with TextMate-grammar syntax highlighting for .kitty files.