* spaghetti or not depends on how you structure things, not on the framework/library used.
* HTMX doesn’t introduce a new language. It extends HTML with props, which is less than what React is doing.
* unpredictable state? You rely on the browser and (partial) page-refreshes.
HTMX does introduce a new language, in fact it introduces 2 different ones, one is an extension of HTML and second is for the codelets it uses inside the array of attributes it uses as a pragma.