| Thanks. I'm glad you ask. The motivation was a web client for a research project at work. My first choice was React+Redux, since that's what we already use for our service Qiita, but I wanted something more lightweight. I made the first prototype using Elm, but it was too painful to integrate with third party components, like CodeMirror[1]. I made the next prototype using yo-yo, but yo-yo is agnostic about state management, lacks inline CSS styles (by choice) and it's based in morphodom (which updates DOM nodes directly) whereas I preferred a virtual DOM approach like Snabbdom or Vidom. I also considered choo.js, a framework based on yo-yo, but it has the same limitations as yo-yo. It was also very difficult to integrate third party components with it, e.g, CodeMirror, involving the creation of a portal[2], reminiscent of Elm ports. I also couldn't agree with some of its API choices like namespaces, router design and models as containers for state objects. HyperApp is ~1kb, and takes inspiration from several sources: the Elm architecture[3], yo-yo/choo's API, the SAM pattern[4], Snabbdom and Vidom. [1]: https://codemirror.net [2]: https://github.com/trainyard/choo-codemirror#choo-codemirror) [3]: https://github.com/evancz/elm-architecture-tutorial/#the-elm... [4]: http://sam.js.org |