A fast, roughly 4kB React-compatible UI library with the same modern component API, built on a Virtual DOM.
solidjs/solid
A declarative JavaScript UI library that compiles JSX to real DOM updates with fine-grained reactivity instead of a Virtual DOM.
- Stars
- 36,172
- Forks
- 1,136
- Open issues
- 36
- Last commit
- yesterday
What is it?
Solid is a JavaScript library for building user interfaces. Instead of a Virtual DOM, its JSX templates compile to real DOM nodes, and state changes update only the expressions that depend on them. Components are plain functions that run once to set up the view, while signals, derived values and effects handle the rest.
The library includes built-in primitives for global state through Context and Stores, plus Resources, Suspense and concurrent rendering for loading server data. It also supports server-side rendering with streaming and progressive hydration, as well as Error Boundaries and Portals. Custom renderers are possible, so Solid can target environments beyond the browser.
Solid is built on JSX and TypeScript and integrates with Vite. It is designed for direct DOM access, so existing native JavaScript libraries such as D3 can be used alongside it. Browser support covers the last two years of modern desktop and mobile browsers.
Key features
- 01Compiles JSX templates to real DOM nodes with fine-grained updates
- 02Automatic dependency tracking through reactive signals and derived values
- 03Built-in Context and Stores for managing global state
- 04Resources, Suspense and concurrent rendering for async data
- 05Server-side rendering with streaming and progressive hydration
- 06Supports custom elements and custom renderers
Use cases
- Building client-rendered single-page applications with fine-grained reactivity
- Server-rendered web apps that need streaming and progressive hydration
- Writing reusable web components or custom elements
- Integrating existing native JavaScript libraries such as D3 with direct DOM access
Quick start
- 1
Scaffold a JavaScript app with degit
npx degit solidjs/templates/js my-app - 2
Enter the project folder
cd my-app - 3
Install dependencies
npm i - 4
Start the development server
npm run dev
Topics
FAQ
- What is solid?
- A declarative JavaScript UI library that compiles JSX to real DOM updates with fine-grained reactivity instead of a Virtual DOM. Solid is a JavaScript library for building user interfaces. Instead of a Virtual DOM, its JSX templates compile to real DOM nodes, and state changes update only the expressions that depend on them. Components are plain functions that run once to set up the view, while signals, derived values and effects handle the rest.
- Is solid free to use? What license does it have?
- solid is open source under the MIT license. Check the license terms before using it in commercial products.
- Is solid still maintained?
- Actively maintained. The last commit to solid was on Oct 24, 2026.
- What can I use solid for?
- Building client-rendered single-page applications with fine-grained reactivity Server-rendered web apps that need streaming and progressive hydration Writing reusable web components or custom elements Integrating existing native JavaScript libraries such as D3 with direct DOM access
- How do I install solid?
- Scaffold a JavaScript app with degit: npx degit solidjs/templates/js my-app Enter the project folder: cd my-app Install dependencies: npm i Start the development server: npm run dev
- Where can I get solid?
- The source code and installation instructions are on GitHub: https://github.com/solidjs/solid
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Omi is a Web Components framework with JSX, signal-based reactivity, a router and Tailwind support, aimed at building reusable custom elements.
A JavaScript library for building interactive user interfaces from composable components, usable on the web, server and native platforms.
A rugged, minimal JavaScript framework for adding reactive behavior directly in your HTML markup.
Nuxt is an open-source framework for building full-stack, production-grade web applications and websites with Vue.js.
An extremely fast, React-like JavaScript library for building high-performance user interfaces on the client and server.