What I’m building, and why.

Release notes, design decisions, experiments, and the longer story behind software that stays readable.

October 2026

Stario 5 — a compiled engine, HTTP/2, and all of your cores

Stario 5 replaces the Python HTTP protocol with a compiled one, adds HTTP/2 and direct TLS, runs one event loop per thread on free-threaded Python, and makes the handler shorter. With benchmarks against 4.3 and Granian.

September 2026

Stario 4.2 — the route is the address

Route is method, host, and path. That is the address you assign to a handler. The rest of 4.2 follows from treating that as the thing we keep.

August 2026

Stario 4.1 — Ox and Orbit

Stario 4.1 adds Route. Ox is a small hypermedia client I built to learn Datastar. Orbit is a deploy step runner: rsync, a slot, and your script.

June 2026

Stario 4 is here

Routes and URLs are module config now—full paths on App, UrlPath instead of mounts and url_for, AssetManifest at import time, and STARIO_* env for the server. Migration guide and changelog carry the rest.

May 2026

Stario 3.4 — SQLite tracer

Configure SqliteTracer and JsonTracer with STARIO_TRACERS_* env vars; query finished spans in a local SQLite file.

May 2026

Stario 3.3 — Single worker

Stario 3.3 tightens HTTP hot paths and adds a no-op tracer for benchmark and high-throughput runs.

April 2026

Stario 3.2 — Single writer

3.2.0 lifecycle hooks and a minimal Relay work queue in bootstrap.

April 2026

Stario 3.1 — Datastar 1.0

Datastar 1.0 upstream, Stario aligned—and a small Relay quality-of-life win.

April 2026

Stario 3 is here

The same bet as 2.3, pushed further—new surface area, a few intentional breaks, and sharper docs. Changelog and reference carry the specifics.