solid
A declarative, efficient, and flexible JavaScript library for building user interfaces.
Solid: reactive UI without a virtual DOM
A declarative JavaScript UI library that compiles templates to real DOM nodes and updates only the code that depends on changed state.
The rendering model
Solid is a declarative, efficient, and flexible JavaScript library for building user interfaces. Instead of a Virtual DOM, it compiles templates to real DOM nodes and updates them with fine grained reactions. When a piece of state changes, only the code that depends on it reruns. The render once model is the mental shortcut the README wants you to keep. TypeScript is the primary language, the license is MIT, and the homepage is solidjs.com.
Feature list
The README lists fine grained updates to the real DOM, declarative data with reactive primitives, automatic dependency tracking, small size, and simplicity. Modern framework features include JSX, fragments, Context, Portals, Suspense, streaming SSR, progressive hydration, Error Boundaries, and concurrent rendering. The list is long enough that the README reads like a capabilities sheet, but the reactive core stays small.
Setting up and debugging
You can add a Solid preset to babel, webpack, or rollup configuration, or install dependencies in a custom setup. JSX is recommended. The README says the framework is naturally debuggable because a component renders a real element you can inspect in browser devtools. Reactive primitives like createSignal run at runtime, and automatic dependency tracking means accessing reactive state subscribes to it. Components are regular JavaScript functions that run once to set up the view, a render once mental model. The debug story is a side effect of rendering real nodes instead of a virtual tree.
Editorial conclusion
The core claim is simple: no virtual DOM, reactive primitives at runtime, render once. The feature list, meanwhile, reads like a checklist for a modern framework, which is where the two halves of the README meet.
Community notes