Dom Expressions

screenshot of Dom Expressions

Dom Expressions

A Fine-Grained Runtime for Performant DOM Rendering


DOM Expressions is a Rendering Runtime designed for reactive libraries that focus on fine-grained change detection using Observables and Signals instead of Lifecycle functions or Virtual DOM. It aims to render pure DOM expressions efficiently, making it incredibly fast and dominating in JS Framework Benchmarks. This package is intended to be used with companion render APIs, like the JSX Babel Plugin, Tagged Template Literals, or HyperScript runtime APIs.


  • Rendering Runtime: Enables fine-grained change detection for reactive libraries.
  • Companion Render APIs: Works with JSX Babel Plugin, Tagged Template Literals, and HyperScript.
  • Performance: Proven to be incredibly fast and efficient in JS Framework Benchmark.
  • Runtime Generator: Allows creation of tree-shakeable runtimes using babel plugin.
  • Example Implementations: Compatible with libraries like Solid, MobX, Vue, KnockoutJS, and others.


To install DOM Expressions, follow these steps:

  1. Install the package using npm:
    npm install dom-expressions
  2. Use the companion render API of your choice: JSX Babel Plugin, Tagged Template Literals, or HyperScript.


DOM Expressions is a high-performance Rendering Runtime for reactive libraries that prioritize fine-grained change detection. It offers efficient rendering of pure DOM expressions and works seamlessly with companion render APIs like JSX Babel Plugin, Tagged Template Literals, and HyperScript. By allowing the creation of tree-shakeable runtimes, DOM Expressions provides a flexible and optimized solution for building reactive user interfaces.


RollupJS is a popular and efficient JavaScript module bundler that takes the code from multiple modules and packages them into a single optimized file, minimizing the overall size of the application and improving its performance.


TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.