# State management · Tech watch

[Canonical source](<https://sebastien.rigaux.be/en/tech-watch/tags/state-management>)

Organizing and synchronizing application state across data and components.

## [React: making UI states explicit in the agentic era](<https://sebastien.rigaux.be/en/tech-watch/links/react-making-ui-states-explicit-in-the-agentic-era>)

When an agent changes a UI, checking a single account cannot cover every role, plan, or feature flag. Matt Rothenberg shows how values scattered across hooks, providers, and layouts can hide overlooked states — such as a Delete button shown to a view-only user.

Making display state an explicit component input lets teams render relevant combinations directly, test them, or compare them in a visual grid. Storybook and Playwright complement this approach, but they do not choose which scenarios to cover; that decision still matters.

2026-10-27 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/react-making-ui-states-explicit-in-the-agentic-era.md>) · [Original resource](<https://mattrothenberg.com/notes/pure-ui-agentic-era/>)

## [Mutative: immutable updates without the spread syntax](<https://sebastien.rigaux.be/en/tech-watch/links/mutative-immutable-updates-without-the-spread-syntax>)

Mutative lets developers write mutations against a draft to produce a new immutable state, avoiding manual spread copies at every level. It also supports arrays, `Set` and `Map`, along with patches and optional freezing.

Its benchmarks report a geometric mean 3.6 times faster than Immer with matched settings, or 6.6 times with each library’s defaults. Results vary by workload; hand-written reducers remain faster in most of the cases shown.

2026-10-23 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/mutative-immutable-updates-without-the-spread-syntax.md>) · [Original resource](<https://mutative.js.org/>)

## [Share atomic frontend state with Nanostores](<https://sebastien.rigaux.be/en/tech-watch/links/share-atomic-frontend-state-with-nanostores>)

Nanostores provides small composable state stores for React, Preact, Vue, and Svelte. Its atomic, tree-shakable design supports focused state without shipping unused code.

2026-05-01 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/share-atomic-frontend-state-with-nanostores.md>) · [Original resource](<https://github.com/nanostores/nanostores>)

## [TinyBase for reactive, local-first JavaScript apps](<https://sebastien.rigaux.be/en/tech-watch/links/tinybase-for-reactive-local-first-javascript-apps>)

TinyBase is a reactive in-memory store for JavaScript and TypeScript apps, with persistence and synchronization. It provides building blocks for local-first experiences without prescribing one server architecture.

2026-03-08 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/tinybase-for-reactive-local-first-javascript-apps.md>) · [Original resource](<https://tinybase.org/>)

## [Clarify React Query states with pattern matching](<https://sebastien.rigaux.be/en/tech-watch/links/clarify-react-query-states-with-pattern-matching>)

Gabriel Pichot organizes loading, error, success and empty states with pattern matching. The approach reduces scattered branches in components and improves readability.

2025-04-24 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/clarify-react-query-states-with-pattern-matching.md>) · [Original resource](<https://www.gabrielpichot.fr/blog/simplify-tanstack-react-query-state-handling-with-pattern-matching/>)

## [React Agent Hooks: expose interface state to agents](<https://sebastien.rigaux.be/en/tech-watch/links/react-agent-hooks-expose-interface-state-to-agents>)

This library derives LLM tools from React hooks. Human and agent interfaces can share the same state, with a developer-defined schema controlling state changes.

2025-04-20 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/react-agent-hooks-expose-interface-state-to-agents.md>) · [Original resource](<https://github.com/chuanqisun/react-agent-hooks>)

## [Preact signals for reactive state management](<https://sebastien.rigaux.be/en/tech-watch/links/preact-signals-for-reactive-state-management>)

The guide introduces signals and automatic dependency tracking in Preact. It explains how state changes update the interface without repeated manual synchronization.

2025-02-15 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/preact-signals-for-reactive-state-management.md>) · [Original resource](<https://preactjs.com/guide/v10/signals/>)

## [Normy: normalize data to simplify cache updates](<https://sebastien.rigaux.be/en/tech-watch/links/normy-normalize-data-to-simplify-cache-updates>)

Normy normalizes data fetched through libraries such as React Query or SWR. Shared entities can then update across cached results without repeating synchronization logic.

2025-01-07 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/normy-normalize-data-to-simplify-cache-updates.md>) · [Original resource](<https://github.com/klis87/normy>)

## [Manage advanced URL filters in the Next.js App Router](<https://sebastien.rigaux.be/en/tech-watch/links/manage-advanced-url-filters-in-the-next-js-app-router>)

Aurora Scharff uses URL parameters as the source of truth for filtering, sorting and pagination. The article covers coordinating that state with interactions and Server Components.

2024-11-07 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/manage-advanced-url-filters-in-the-next-js-app-router.md>) · [Original resource](<https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/>)

## [Nuqs: synchronize React state with URL parameters](<https://sebastien.rigaux.be/en/tech-watch/links/nuqs-synchronize-react-state-with-url-parameters>)

Nuqs offers a useState-like API with typed parsers and history controls. It makes filters shareable and reloadable by keeping their state in the URL.

2024-11-04 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/nuqs-synchronize-react-state-with-url-parameters.md>) · [Original resource](<https://nuqs.dev/>)

## [Synchronize a local-first Expo application with TinyBase](<https://sebastien.rigaux.be/en/tech-watch/links/synchronize-a-local-first-expo-application-with-tinybase>)

This guide introduces TinyBase into an Expo application to combine reactive local data with synchronization. It covers sharing data across devices and users.

2024-10-06 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/synchronize-a-local-first-expo-application-with-tinybase.md>) · [Original resource](<https://expo.dev/blog/how-to-synchronize-reactive-local-first-apps-with-tinybase>)
