Skip to content

Solid

A JavaScript library for building user interfaces that updates only the parts of the page that change.

Stars
36.2k
Forks
1.1k
Licence
MIT
Language
TypeScript
Last update
4 days ago
Type
Library

What it is

Solid is a JavaScript library for building user interfaces. Instead of using a Virtual DOM, it compiles templates into real DOM nodes and updates just the pieces that depend on changed state. Developers use it to build interactive web apps that can also be rendered on the server.

  • Build a client-rendered single-page app using the official JS or TypeScript starter template
  • Create reactive state with createSignal and derive values from it
  • Manage global state with built-in Context and Stores instead of a third-party library
  • Load server data with Resources and show loading states with Suspense
  • Render on the server with streaming SSR and progressive hydration

Great for

  • Developers who want fine-grained control over what re-renders in a web UI
  • Developers already comfortable with JSX and TypeScript
  • Teams building client-rendered single-page apps or server-rendered apps
  • People who want to inspect rendered output directly with browser devtools

Not ideal for

  • Complete beginners with no JavaScript background, since the README assumes familiarity with components and state
  • Projects that require a specific ecosystem of ready-made component libraries, since the README does not describe its ecosystem size
  • Anyone who needs a framework with a large, established track record of production use, as the README does not discuss adoption beyond its own benchmarks
Step-by-step guide: how to use SolidInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js (version not specified in README) · npm, yarn, or pnpm

    Create a new JavaScript app from the starter template

    npx degit solidjs/templates/js my-app

    Create a new TypeScript app from the starter template

    npx degit solidjs/templates/ts my-app

    Install the library in an existing project

    npm i solid-js
  2. 2

    Run it

    • Run npx degit solidjs/templates/js my-app (or the ts template) to create a project folder
    • Change into the folder with cd my-app and install dependencies with npm i
    • Start the development server with npm run dev
    • Open the local address shown in the terminal to see the minimal client-rendered app
  3. 3

    Get the most out of it

    • Use the online playground to try the counter example without installing anything
    • Read the interactive features tutorial linked in the README for a guided walkthrough
    • Use the babel-preset-solid configuration to add JSX support to an existing build setup
    • Configure tsconfig with jsx set to preserve and jsxImportSource set to solid-js for TypeScript projects
    • Explore the solid-element package if you want to author custom web components

Downloads

Strengths

  • Updates only the code that depends on changed state, avoiding whole-component re-renders
  • Built-in primitives for state, context, stores, and async data reduce the need for extra libraries
  • Renders to real DOM nodes, so standard browser devtools work for inspection

Trade-offs

  • The README describes concepts like fine-grained reactivity that take time to learn compared with simpler templating
  • Setup for JSX outside the starter templates requires configuring Babel or TypeScript, per the README
  • Performance claims rely on the README's links to external benchmarks rather than independent analysis here

How it compares

ProjectStarsTypeLevelUpdatedBest for
solid (this)36.2kLibraryintermediate4 days agoDevelopers who want fine-grained control over what re-renders in a web UI
react252kLibraryintermediate5 days agoDevelopers building interactive web interfaces with JavaScript
vue212kLibraryintermediate2.1 years agoMaintaining an existing Vue 2 application that cannot yet be upgraded
svelte88.5kLibraryintermediate4 days agoDevelopers who want to build interactive websites with less boilerplate
preact39kLibraryintermediate4 days agoWeb developers who already know React and want a lighter library
mitosis14.5kDev toolintermediate8 days agoTeams maintaining the same UI components across more than one framework

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.