S01E01 2026-01-05

S01E01 — 05-01-2026.

zo 0.1.0 — Skrrrt-Skuuu!

The first version of zo is here. The idea was born from an absence: no modern programming language ships templating as part of the language itself. zo draws its main inspiration from ES4 and E4X — a project that was abandoned. Here is what it looked like:

let sales = <sales vendor="John">
  <item type="peas" price="4" quantity="6"/>
  <item type="carrot" price="3" quantity="10"/>
  <item type="chips" price="5" quantity="3"/>
</sales>;

alert(sales.item.(@type == "carrot").@quantity);
alert(sales.@vendor);
for each(let price in sales..@price) {
  alert(price);
}

Source — ECMAScript for XML — wikipedia

Everything starts here. zo embeds a syntax extension called zsx. It lets you declare typed components and target Desktop, Mobile, and Web from one source:

fun main() {
  mut count: int = 0;

  imu counter: </> ::= <>
    <button @click={fn() => count -= 1}>-</button>
    {count}
    <button @click={fn() => count += 1}>+</button>
  </>;

  #render counter;
}

This is only one facet of zo. Behind it, the same language builds applications of every kind. To learn more, follow the initiation.