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.