SolidJS 2.0 Is Almost Here: Async-First Reactivity and a Rebuilt Core

After months in development preview, SolidJS 2.0 has reached Release Candidate — with the latest iteration (rc.16) landing on October 20, 2026. The API is frozen. The ecosystem is migrating. And the core reactive model has been rebuilt from scratch in ways that make Solid fundamentally different from Solid 1.x.

Async as a First-Class Citizen

The biggest shift is conceptual. In Solid 2.0, computations can return promises. The reactive graph suspends when a signal produces a promise and resumes when it resolves — automatically, without you wiring up any loading state or useEffect chains. This is not just a convenience API on top of the old model. The entire reactive core was rewritten to support it.

The practical consequence is that data-fetching components can be written as synchronous-looking code that the framework automatically makes async. Server and client loading logic unifies around the same primitive. There's no separate "async signal" type — ordinary signals just work this way when they need to.

Optimistic Mutations

Solid 2.0 ships optimistic mutations as a built-in primitive. You can update local state immediately when a mutation fires, then either commit or roll back based on what the server returns. This covers a pattern that most Solid 1.x apps were implementing manually or reaching for a library to handle. Having it in the framework means consistent semantics and no impedance mismatch with the reactive graph.

The Ecosystem Is Ready

The team timed the RC announcement to coincide with ecosystem readiness. As of rc.16, Solid Router 2.0, Solid Primitives, Kobalte, Solid Testing Library, Storybook, and AG Grid are all working with the new version. That's not a guarantee of zero rough edges, but it means the major building blocks of a real application are already tested against the new API.

Solid Router 2.0 ships alongside the framework and is built around the same async-first primitives, so routing and data loading compose naturally without manual bridging code.

What Stays the Same

The JSX syntax and the fundamental signal model are unchanged. If you've used Solid 1.x, the mental model transfers: fine-grained reactivity, no virtual DOM, direct DOM updates. What 2.0 adds is async handling and a cleaner story for effects and mutations — it's evolution, not reinvention. Migration tooling is being developed, though for large apps a rewrite of the async data layer is likely unavoidable.

What's Next

With the API frozen at RC, the team's focus is bug reports from the ecosystem and final polish before general availability. There's no announced GA date, but rc.16 progressing this smoothly suggests it won't be far. Release history and changelogs are on GitHub; the RC is safe to evaluate for new projects today.