solid-js

Installation
SKILL.md

SolidJS — fine-grained reactivity, no VDOM

One rule governs everything else: the component function runs ONCE. Reactivity does not live in re-running the body — it lives in the reads. You read state by calling a getter (count()), and Solid re-runs only the exact DOM expression or effect that read it. There is no virtual DOM and no reconciliation; JSX compiles straight to DOM nodes. If you carry React habits here (destructuring props, expecting the body to re-run, deriving state in an effect), reactivity breaks silently — the code runs, it just stops updating.

Versions: stable is solid-js 1.9.x (1.9.11/1.9.13 line). Solid 2.0 is in beta on the next npm tag with a new reactive core (@solidjs/signals), createAsync, and automatic batching. Default to 1.9.x APIs unless the task says 2.0; flag the divergence where it matters.

When to use / when not

Situation Skill
Solid signals/stores/effects/memos/resources, JSX-to-DOM, <For>/<Index> this skill
React useState/hooks/re-render model (the body re-runs) react
Next.js routing, server actions, RSC nextjs
Svelte 5 $state/$derived runes (similar look, different compiler) svelte
Vue/Nuxt ref/reactive/computed vue-nuxt
Astro island architecture / what ships to the client (can host a Solid island) astro
Plain TypeScript questions with no Solid surface ../typescript/SKILL.md
Deploying the built app (Vercel/SolidStart adapter) ../vercel/SKILL.md
Installs
5
GitHub Stars
116
First Seen
Aug 6, 2026
solid-js — ericrisco/rsc-harness