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.
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