SolidJS and Signals – A Different Reactivity
June 1, 2023
SolidJS is a front-end framework that takes a different path than React or Vue. It doesn't use a virtual DOM. Instead, it relies on fine-grained reactivity powered by signals.
Why Signals?
In Solid, signals are reactive values that automatically update your UI when they change.
Here's a simple example:
import { createSignal } from "solid-js";
function Counter() {
const [count, setCount] = createSignal(0);
return (
<>
<p>Count: {count()}</p>
<button onClick={() => setCount(count() + 1)}>Increment</button>
</>
);
}
Unlike React, you don't write useState
and useEffect
. The component is reactive by default. count()
triggers re-renders only where it's used, not the entire component.
How Solid Differs
- No virtual DOM
- Compile-time optimizations
- Fine-grained reactive updates
- Small bundle sizes
Solid vs React
React updates components as a whole. Solid updates DOM nodes directly. This results in better performance for many use cases, especially smaller projects or embedded widgets.
Signals Everywhere
Solid’s model is gaining attention. Other frameworks are also exploring signal-based reactivity:
- Preact introduced
signals
as an experiment - Vue has its
ref()
API - Qwik uses resumable reactivity
Developers are now exploring frameworks that prioritize performance with minimal abstraction.
When to Use Solid
Use Solid if you:
- Care a lot about runtime performance
- Are building small or medium apps
- Want simpler mental models for reactivity
- Like JSX but want more control
Solid is not trying to replace React but offers a clean and fast alternative where simplicity and speed matter most.
Recent posts
- At-Least-Once vs. Exactly-Once - Understanding Message Delivery Guarantees
June 12, 2025
Learn about message delivery guarantees in distributed systems. Understand why most production systems implement at-least-once delivery with idempotency rather than attempting exactly-once delivery.
- How Idempotency Saves Your API from Chaos
June 11, 2025
Learn how to implement idempotency in your APIs to prevent duplicate actions and ensure data consistency. Includes practical examples with Supabase and Node.js.
- Vibe Coding ‑ Notes from the First Try
June 6, 2025
Quick lessons from spinning up a new blog with an AI pair‑programmer and Cursor.