Coordination layer for modern fragmented state

Symphony State orchestrates server cache, UI state, URL params, and browser persistence
without forcing a monolithic global store.

Not another state library. A conductor that lets each source play its part, resolves conflicts with clear precedence, and makes every decision observable.

Architecture

Four sources, one conductor

Server Cache
TanStack Query / SWR
UI State
Local component state
URL Params
Search params / routing
Persistence
localStorage / IndexedDB
🎼
Conductor
Symphony State
deterministic, single-wave commitUI

Try it

15-second live demo

1
2
3
4

👉 Type 'usb' in the filter field

This updates URL state → derived list recomputes instantly. In a typical app, this would be two separate setState calls. Here it's one atomic transaction.

url
ui
server
Wireless Headphonesderived
USB-C Hubderived
Mechanical Keyboardderived
4K Webcamderived
Portable SSDderived
Smart Speakerderived
Monitor Armderived
Standing Deskderived

Score

0 events

This panel shows the event log — every state transaction, every source change, every derived recomputation. In a real app, this is what you'd see in the Symphony DevTools.

Key concepts

What makes it different

🎼

Orchestration, not ownership

Each source keeps its store. Symphony State coordinates reads, writes, and conflict resolution across all of them.

Single-wave commits

Updates are staged, dependency-ordered, and committed atomically. No cascading re-renders, no stale intermediate states.

🔬

Observable state

Every value carries its provenance. The Score panel shows which source is driving, what was reconciled, and why.

🧩

Composable adapters

Atom, Zustand, Redux, TanStack Query, URL params — plug in what you use. No migration required.

🛡

Reconciliation precedence

Server vs. optimistic vs. persisted? Priority, staleness, and custom rules decide deterministically.

📊

Minimal re-renders

Subscribers are notified only for touched sections. Unchanged components stay untouched.

See it in action

An Inventory Dashboard that uses all four state sources, with a live Score panel showing every decision.