Skip to content

OrefSignals for Flutter, without the ceremony

Lightweight reactive primitives that rebuild only what matters.

Why Oref

Predictable reactivity

Reads track dependencies, writes notify subscribers. Nothing hidden.

Widget-first ergonomics

Signals live with widgets. Use SignalBuilder to scope rebuilds.

Composable primitives

Signals, computed values, effects, and batching compose cleanly.

3-Step Quick Start

1. Install

bash
flutter pub add oref

2. Create a signal

dart
final count = signal(context, 0);

3. Derive and update

dart
final doubled = computed(context, (_) => count() * 2);
count.set(count() + 1);
Need recipes?

Check the guides for patterns like async data, batching, and collections.

Recipes to Explore

Form state

Keep input state and validation derived from signals.

List filtering

Use computed values to derive filtered views from large lists.

Async loading

Handle loading and errors with useAsyncData().

Ready to dive in? Start with Getting Started.