#todo-tournament A sixth contestant joins: durable-hop, the durable package's own hop runtime (hopd plus the wasm browser interpreter) serving one fullstack .hop file. It passes all 12 tournament validators, with state on the JSONL tape and a RocksDB projection — restart hopd and the board comes back. ~/durable-hop { One fullstack .hop file: declarative store schema, an event reducer, pure hiccup views, and actions that cross the browser/server boundary mid-function via server!() and cast. Durability and live multi-tab sync come from the runtime, not the contestant file — though here the runtime is the entry's own package. Passing the suite required real runtime work: dom.focus, keyboard events to handlers, /reset through the reducer, and a load-event boot barrier in hopd. } :runtime-capability { which stack does more for the contestant out of the box } { durable-hop gets durable storage, live multi-tab sync, and fullstack actions that hop between browser and server mid-function, all from the runtime with zero glue code; clojure-evaleval's stack is a hand-rolled eval/morph layer with no persistence or sync. } ~/durable-hop > ~/clojure-evaleval { buzz gives clojure-buzz reactivity and SSE patches; hop gives durable-hop that plus an event-sourced store and a browser wasm interpreter. } ~/durable-hop > ~/clojure-buzz { python-web1 is deliberately minimal Web 1.0: plain forms, no JS, process-local state. The capability gap here is the widest in the field. } ~/durable-hop 3:1 ~/python-web1 : { clojure-evaleval implements its pattern end-to-end (server macro, HMAC signing, JS DSL) with the cleanest separation of concerns; durable-hop's contestant file is tidy, but the design is mostly the hop runtime's. } ~/clojure-evaleval > ~/durable-hop { racket-evaleval is a native, self-contained implementation of the evaleval pattern; durable-hop is more declarative but leans on its runtime for the hard parts (durability, sync, rendering). } ~/racket-evaleval > ~/durable-hop { Both owe their design to their framework, but durable-hop's single file gets durability, live multi-tab sync, and working filters with no client glue code; the schema/reducer split reads cleaner than watched atoms. } ~/durable-hop > ~/clojure-buzz { durable-hop is self-contained — its runtime is the entry's own package — with a declarative schema and reducer; python-evaleval relies on an external evaleval package and an obscure Three[Selector][MORPH] eval DSL. } ~/durable-hop > ~/python-evaleval { durable-hop implements full TodoMVC with persistence and live sync in one readable file; python-web1 is deliberately minimal Web 1.0 with global mutable state and little separation of concerns. } ~/durable-hop > ~/python-web1