Legal o esforço, mas o framing "No.JS" não cola. O setup é um <script src="..."> que carrega um runtime JS. Os atributos state, model, each, bind são uma DSL que um interpretador JS avalia em runtime. Você não digita function, mas está rodando JS em cada atributo. Por esse critério, Astro e Svelte também são "No.JS".
Na prática é um Alpine.js (2019) com nomes de atributos diferentes e mais baterias incluídas.
Pra quem curte a filosofia "HTML como protagonista" de verdade, vale conhecer o htmz (https://leanrada.com/htmz/) — 166 bytes, zero atributos customizados, zero DSL, usa o que o browser já tem nativamente. Conceitualmente muito mais honesto com a proposta.
1
1
Ironia: motivo pelo qual usei o nome NoJS. ;)
A ideia do NoJS não é somente simplificar, mas tbm aumentar o HTML. Extender as funcionalidades, facilitar o desenvolvimento de sites reativos, sem a extrema complexidade de utilizar React/Angular/etc.