@martijn Well this particular workflow requires forms (as it adds the htmx attributes to forms that it finds). The whole idea is that you get a streaming, event-based declaratiev interface to your DOM instead of handling all that stuff yourself.
That said, you can just use htmx directly to do declarative fetches using HTTP (or your own custom WebSocket stuff). And, of course, you can just use fetch directly if you like. Everything is progressively enhanced on top of plain HTML, CSS, & JS.