ReactFoo Delhi

ReactFoo Delhi

On React, performance and front-end engineering

Sudhanshu Yadav


Brahmos.js - React without VDOM

Submitted Jul 16, 2019

React has a great declarative API and is quite fast for render and updates. But the performance can be improved further with a new rendering pattern inspired by lit-html and hyper-html. This talk will introduce a new JavaScript Library Brahmos which has a faster rendering pattern than VDOM but implement that with same well adopted React’s declarative API.

The talk will cover the idea behind the Brahmos, what Brahmos is trying to achieve, compare it with different libraries and compare the rendering pattern of Brahmos with React’s VDOM to explain how it can be a faster alternative to VDOM.
I will also present the current progress and future path for the Brahmos.


The Idea. Why Brahmos?

  • How did it start?
  • Improvement on React library itself?
  • Use lit-html as templating engine?
  • What it is trying to achieve?

How does it work?

  • How react rendering works?
  • How Brahmos optimizes it?
  • How does rendering work on Brahmos?

Working Example

  • Todo MVC built with Brahmos (Demo)
  • Writing Components in Brahmos

Current state

  • Available React API
  • Pending features

Future path

  • How progressively Brahmos will be developed.
  • Maintaining the developer experience.
  • 3rd Party React component support.

Speaker bio

Sudhanshu work as Front-end Architect at HackerRank. He has a love for frontend and anything in JS. In HackerRank he is involved in system design, building infra, mentoring peoples and improving the frontend platform and team as a whole.
He is also an active open source contributor who likes building UI, modules, and tools and have open sourced few of them with 5.7M+ downloads on npm and 3.7 K stars on github.
He likes talking about JavaScript, React, performance, frontend tools, architecture and patterns.




{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}