Solid

Solid

No-VDOM UI Library

Description

< #Frontend Framework #JavaScript #Reactive Programming #No Virtual DOM #Server Rendering #Open Source

Solid is a JavaScript library for building user interfaces, and its defining trait is that it uses no virtual DOM. Templates compile to real DOM nodes at build time, state is declared with createSignal, and when a value changes only the small piece that actually depends on it re-executes — no re-running the component function, no diffing two trees.

It fits interfaces that are interaction-heavy and state-dense. With a virtual DOM, the heavier the page the more expensive that diff becomes, and you end up tracking by hand which callbacks need memoizing and whether a dependency array is complete. Solid removes that whole category of work, and its results on the JS Framework Benchmark sit close to hand-written vanilla JavaScript.

Features



Fine-grained reactivity: updates propagate per signal, so one state change triggers only the DOM operations that depend on it, and component functions run once with no cascading re-render cost.

Compiled templates: JSX compiles into code that creates DOM nodes directly, leaving no virtual DOM diffing layer at runtime and keeping both bundle size and memory use small.

Everything you expect: JSX, Context, Portals, Suspense, error boundaries, and async and concurrent rendering are all present, so moving from another framework does not mean giving features up.

Server-side rendering: synchronous, asynchronous and streaming SSR are supported alongside progressive hydration, so the first screen can be sent to the browser as it is produced.

Runs where you deploy: the server side runs on Node LTS as well as on Deno and edge runtimes such as Cloudflare Workers.

No manual tuning: there are no memo wrappers to add and no dependency arrays to audit, because the reactive system itself decides what updates — a missing cache never turns into a dropped frame.

2.0 in the works: version 2.0 is in an active release-candidate phase, with rc.3 through rc.6 shipping within a single week from late August into early September.

Open source project: the source code is hosted on GitHub, so developers can review the implementation, contribute, or customize it for their own needs.