
Build lightning-fast apps with zero boilerplate
The modern state management library for React & React Native. 33x faster, 90% less code, infinitely simpler.
npm install signalforgeimport { useSignal } from 'signalforge/react';
function Counter() {
const [count, setCount] = useSignal(0);
return <button onClick={() => setCount(count + 1)}>
Clicked {count} times
</button>;
}That's it! No providers, no context, just works!
15 interactive demos that make you a SignalForge expert
Side-by-side comparison showing 90% less code with the same shopping cart functionality.
Compare SignalForge with traditional state management
See how only edited cells re-render, while Redux/Context would re-render the entire grid.
Real-time collaboration with minimal re-renders
Complex nested calculations with visual dependency tree and automatic updates.
Automatic dependency tracking vs manual selectors
Real-time comparison showing render counts and performance differences.
Measure the performance difference
Create reactive state with just one hook. Quick start for beginners.
How to use useSignal() to create and update state
Auto-calculating values that update when dependencies change.
Derive values automatically from other signals
Run side effects when signals change with built-in cleanup.
React to signal changes with automatic cleanup
Complete React integration with useSignal, useSignalValue, and useSignalEffect.
All the React hooks you need for SignalForge
Update multiple signals efficiently with batched updates for better performance.
Optimize performance with batched updates
Listen to signal changes outside React for logging or analytics.
Monitor signal changes with subscriptions
E-commerce cart with add/remove items, quantities, and automatic total calculation.
Build a complete shopping cart feature
Dynamic form with real-time validation and error messages.
Create forms with live validation
Full CRUD application with add, edit, delete, and filter functionality.
Build a complete CRUD application
Work with arrays using push, filter, and map optimized for signals.
Handle arrays with signal-optimized methods
Read signals without creating dependencies for advanced control.
Fine-tune reactivity with untrack()
Auto-save to localStorage with simple one-line configuration.
Persist state across page reloads
Handle 10,000+ items efficiently to see how SignalForge scales.
Test performance with large datasets
Inspect signals in real-time with debugging tools and time-travel.
Debug with signal inspector and profiler
Built-in undo/redo functionality for state changes.
Implement undo/redo functionality
Compare traditional React to SignalForge
import { createSignal } from 'signalforge';
// Create a signal
const count = createSignal(0);
// Auto-updating computed value
const doubled = createComputed(() =>
count.get() * 2
);
// Update = UI updates automatically! âĻ
count.set(5);Fine-grained reactivity means only what changed re-renders. 33x faster than useState + useEffect.
No providers, no actions, no reducers, no selectors. Just signals. Compare 200 lines of Redux to 20 lines of SignalForge.
Just 2KB gzipped. Zero dependencies. Tree-shakeable. Your users will thank you.
Professional features that developers love
Only 3 core functions to learn. No Redux complexity, no boilerplate.
Updates 33x faster with batching. Handles thousands of signals smoothly.
Just 2KB gzipped. Zero dependencies. Tree-shakeable.
React, React Native, Next.js, or plain JavaScript. SSR ready.
Auto-save to localStorage or AsyncStorage with one line of code.
Time travel debugging, signal inspection, and performance monitoring.
npm install signalforgeimport { useSignal } from 'signalforge/react';
function Counter() {
const [count, setCount] = useSignal(0);
return (
<button onClick={() => setCount(count + 1)}>
Clicked {count} times
</button>
);
}No providers, no context, no configuration needed. Just install and use.
Master these three concepts and you know 90% of SignalForge
Signals are containers for values that notify subscribers when they change. Think of them as "smart variables" that your UI can watch.
const username = createSignal('John');
const count = createSignal(0);
// Read values
console.log(username.get()); // 'John'
// Update values
username.set('Jane');
count.set(count.get() + 1);
// Your React components automatically re-render! âĻComputed signals automatically recalculate when their dependencies change. Perfect for derived state like totals, filtered lists, or formatted data.
const price = createSignal(100);
const quantity = createSignal(3);
// Automatically updates when price or quantity changes
const total = createComputed(() =>
price.get() * quantity.get()
);
console.log(total.get()); // 300
price.set(150);
console.log(total.get()); // 450 - Updated automatically! ðEffects run code when signals change. Great for logging, API calls, DOM updates, or syncing with external systems. Cleanup functions prevent memory leaks.
const theme = createSignal('light');
createEffect(() => {
// Runs when theme changes
document.body.className = theme.get();
console.log('Theme changed to:', theme.get());
// Optional cleanup
return () => {
console.log('Cleaning up old theme');
};
});
theme.set('dark'); // Effect runs automatically!See how SignalForge stacks up against popular alternatives
| Feature | SignalForge | Redux | Zustand | Context API |
|---|---|---|---|---|
| Bundle Size | 2KB | 45KB | 3KB | 0KB (built-in) |
| Learning Curve | 5 mins | 2-3 days | 30 mins | 1 hour |
| Boilerplate | None | Heavy | Minimal | Medium |
| Fine-Grained Updates | â | â | â | â |
| TypeScript | â Built-in | â | â | â |
| DevTools | â Built-in | â Extension | â ïļ Limited | â |
| Time Travel | â Built-in | â Via DevTools | â | â |
| Persistence | â Built-in | â ïļ Middleware | â ïļ Manual | â |
ðĄ Pro Tip: SignalForge combines the simplicity of Context API with the power of Redux and the performance of fine-grained reactivity.
SignalForge shines in these scenarios
Real benchmarks from our test suite
An open-source collective crafting high-quality tools for modern JavaScript
MIT Licensed âĒ 100% Open Source âĒ Made with âĪïļ for developers
2KB gzipped âĒ Zero Dependencies âĒ TypeScript âĒ Production Ready