A Fast, Compiler-Augmented Virtual DOM for Performant JavaScript UI Libraries

💽 GitHubView source code
📝 PaperRead more about the research
🚧 PresentationBrief glance at research
🌇 VideoLive research presentation
💡 ManifestoPast, present, and future of Virtual DOM
🌐 WebsiteRead documentation


My name is Aiden Bai and I'm really interested in HCI research, particularly within user interface (UI) and web development. At the time of writing this, I'm a student at Camas High School.

In July 2021, Million.js began as an experiment with Virtual DOM because I was curious with how UI libraries worked. I was frustrated with the lack of a modern, fast, and modular Virtual DOM library for JavaScript. Virtual DOM had been around for almost a decade, yet many Virtual DOM libraries still struggle with render speed compared to newer methods of rendering.

Today, Million.js is the first effort to bring Virtual DOM into the future after hundreds of hours of experimenting. Traditional Virtual DOM libraries have yet to leverage new technological paradigms in the new age of compiled Transitional UI Libraries. Million.js leverages the compiler to create predefined paths, instead of executing all the work in the browser. Because of of this, Million.js sports exceptional rendering speeds, as is used in many open source projects.


The need for developing and delivering interactive web applications has grown rapidly. Thus, Million.js was created to allow for the creation of compiler-augmented JavaScript UI libraries that are extensible, performant, and lightweight. This was accomplished by designing a computationally efficient diffing algorithm that relies on a compiler, and then measuring the performance with a series of relevant and exhaustive benchmarks. Additionally, built-in mechanisms are implemented to allow for imperative optimizations, allowing the compiler to directly skip runtime diffing. When compared to the most popular methods of Virtual DOM rendering, these findings showed that Million.js had superior performance, with 133% to 300% more operations per second than other Virtual DOM libraries.

Last updated on May 7, 2022