If you read this article and thought Hyperscript might be something you wanted to try, please check out Mithril[0].<p>It's an excellent project, pretty decently fast (checkout the js-framework-benchmark[1] code, or more specifically the results of round 8[2]) -- but is currently suffering from a lack of recognition. It's the kind of project that absolutely doesn't care about that kind of metric (as in, the team seems to be more focused on slow, steady improvement of the library rather than chasing stars on github), but I figured I should say something.<p>Shameless plug: I recently really wanted to contribute something (and kick the tires more) so I wrote an article that goes through replicating a simple mail design I saw[3] -- it might be a decent overview of what mithril is like to write (though I'm certainly not a mithril expert).<p>This brings me back to the point at hand -- as others have noted, in my opinion one of the best things about hyperscript is the straight-forwardness with which you construct the render function. I'm not convinced it's necessary to segregate stateless/stateful components -- and mithril is simpler in that it doesn't introduce this dichotomy -- in the end there's the render function, and that's it. If you want to use state, go ahead -- if you don't, then don't. It's the simplicity I've wanted from component frameworks (and mostly get with Vue) without any of the posturing/looming complexity.<p>Also there's the fact that you could write a completely vanilla es5 application with hyperscript (arguments whether you should or not aside) -- JSX is/was revolutionary, but is basically required in practice, which often makes people jump into bed with webpack without thinking, and makes frontend development harder than it has to be.<p>[EDIT] - Another point for mithril is that it's <i>self contained</i> -- routing and ajax calls some with the framework. When people these days talk about "react" or "vue" what they're really talking about is react/vue + react-router/vue-router + flux/vuex and some other odds and ends. Mithril is by far the simplest and most feature-complete of these frameworks despite being smaller (both conceptually and on-the-wire).<p>One of my only current gripes with Mithril is the lack of controllable subtree rendering (it isn't as much of a problem in practice, but more me wanting to optimize early).<p>[0]: <a href="https://mithril.js.org" rel="nofollow">https://mithril.js.org</a><p>[1]: <a href="https://github.com/krausest/js-framework-benchmark" rel="nofollow">https://github.com/krausest/js-framework-benchmark</a><p>[2]: <a href="https://www.stefankrause.net/wp/?p=504" rel="nofollow">https://www.stefankrause.net/wp/?p=504</a><p>[3]: <a href="https://vadosware.io/post/mithril-systemjs-and-rollup-getting-started-guide/" rel="nofollow">https://vadosware.io/post/mithril-systemjs-and-rollup-gettin...</a>