A tiny, extremely minimalist JavaScript microframework

A few months ago, I started looking for a new job within JavaScript ecosystem, and I started interviewing with many different companies. Most of them were conducting remote interviews and they often asked me to complete many different kinds of programming assignments.

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…

Continue reading →