Solidjs: Simple and performant reactivity for building user interfaces

Reactivity model, laziness, and mental model

  • Solid’s fine‑grained, “immediate” reactivity is widely praised as intuitive and easy to debug; many don’t want laziness added by default.
  • Concern: lazy memos or push/pull propagation could violate “principle of least astonishment” (reading a value secretly triggering work) and resemble React’s concurrent mode complexity.
  • The creator clarifies that laziness is being explored mostly for memos, not wholesale async semantics, and Solid already has Suspense. Some users are still uneasy but open to it if optional.

Ecosystem, libraries, and components

  • Multiple users have built medium‑to‑large apps with Solid and found ecosystem “serviceable” for forms, remote state, tables, routing, and various primitives.
  • Clear downsides: far fewer ready‑made component libraries than React; virtual lists, complex UI widgets, touch/animation/map/dataviz libs are thinner, sometimes under‑documented, and you hit edge cases faster.
  • Integrating vanilla or “headless” JS libraries is reported to be straightforward, and some users build their own internal ecosystems over time.
  • Solid Primitives is seen as high quality but perceived by some as stagnating. For heavy enterprise‑style data grids, nothing matches React+MUI’s breadth; SUID (MUI for Solid) exists but performance concerns are noted.

Comparisons with React, Vue, and Svelte

  • Compared to React:
    • Similar JSX and “JS‑first” feel, but no virtual DOM: components run once and signals drive targeted DOM updates.
    • Many feel this fits their mental model better than “rerender everything unless memoized”, and avoids many React gotchas/hooks rules.
    • Others argue React’s problems often stem from mismanaged gotchas rather than the tool itself; large, well‑disciplined React apps can be very fast.
  • Compared to Vue/Svelte:
    • All now converge on signal‑based, compiler‑assisted reactivity; several commenters say Solid’s ideas influenced newer Vue/Svelte designs.
    • Svelte/Vue offer SFC/template‑driven, HTML‑first DX and larger ecosystems; Solid offers plain JS/TS everywhere and less “magic”.
    • Preference splits strongly on JSX vs templates and on separation‑of‑concerns vs locality‑of‑behavior.

Maturity, 2.0, and DX rough edges

  • Solid 2.0 is still in discussion; no firm release timeline.
  • Some see the small, mostly single‑author core and relatively low commit count as a sign of focused design and low churn; others see high bus factor and smaller community as risk.
  • Reported rough edges: weaker docs, alpha/immature devtools, some APIs to avoid (certain Suspense patterns, createUniqueId, occasional SolidStart routing slowness), and subtle reactivity gotchas (e.g., losing reactivity when destructuring props).
  • Despite this, several users say Solid is a “joy” after a day of React, but acknowledge ecosystem gaps and maturity issues make it better suited to smaller or more experienced teams today.