One of such assignment consisted in developing (surprise, surprise) a simple Todo List single-page application but without using any third-party library. Besides providing basic functionalities like adding/removing/completing todo items etc., you would get bonus points for things like support for data pagination, simple data persistence, and support for filtering todo items.
I found this quite a refreshing challenge, but I soon realized how tedious it was to operate on the DOM “in the old way” and how messy things could get really quickly.
I really, really wanted to use even something minimal like Mithril to carry out the assignment! And started wondering how hard it would be to implement a quick-and-dirty Virtual DOM to manage changes more efficiently and also a simple HyperScript implementation to speed-up the creation of HTML elements…