# preactjs/signals

Manage state with style in every framework

Repository: https://github.com/preactjs/signals
Canonical: https://ross.abutalabs.com/products/signals
Homepage: https://preactjs.com/blog/introducing-signals/
Language: TypeScript
License: MIT
License Family: permissive
Topics: preact, react, reactivity, signals, state-management
Last push: 2026-08-17T12:48:14+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 98, release rhythm 86, longevity 100
- inputs: {"age_days": 1486, "days_push": 16, "days_rel": 19, "gap_med": 0, "n_releases_24m": 100}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4475, forks 129 (observed 2026-08-28T04:08:51.065065+00:00)

## What it is
Signals is a performant, reactive state management library from the Preact team, providing signal, computed, effect, and batch primitives with automatic dependency tracking. It ships framework integrations for Preact and React so components re-render automatically when signal values change, with minimal bundle overhead.

## Use cases
- manage shared app state without selectors or wrapper functions
- replace useState or Redux with fine-grained reactive state in React
- derive computed values that update automatically when dependencies change
- optimize rendering performance in large Preact or React apps
- use reactive state outside of components, such as in business logic modules
- add SSR-compatible state management to a React app

## When to choose
- you use Preact or React and want lightweight, fast state management
- you need reactive state usable inside and outside components
- bundle size and update performance are priorities
- you want gradual adoption alongside hooks or class components

## When to avoid
- you use Vue, Svelte, or Angular with their own built-in reactivity
- you need a full state management solution with devtools, middleware, and time-travel debugging
- your team standardizes on a single store pattern like Redux or Zustand

## Facets
- artifact type: library
- maturity: active
- function: state-management, frontend-framework
- domain: frontend, web-development
- platform: browser, cross-platform
- tags: signals, reactivity, preact, react, typescript, fine-grained-reactivity, nodejs

## Member repositories
- preactjs/signals (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:51.065065+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:20:34.911887+00:00, confidence not recorded.
  - readme: https://github.com/preactjs/signals (fetched 2026-08-28T04:08:51.065065+00:00, sha 802550bbfa88)
  - homepage: https://preactjs.com/blog/introducing-signals/ (fetched 2026-08-29T09:07:30.384599+00:00, sha 1ebb21e5d858)
  - site_page: https://preactjs.com/about/project-goals (fetched 2026-08-29T09:07:30.402110+00:00, sha 41c2e63f3f20)
  - site_page: https://preactjs.com/guide/v10/getting-started (fetched 2026-08-29T09:07:30.394027+00:00, sha 1baad012dd68)
  - site_page: https://preactjs.com/about/we-are-using (fetched 2026-08-29T09:07:30.395986+00:00, sha e8598d9fe64a)
  - site_page: https://preactjs.com/about/libraries-addons (fetched 2026-08-29T09:07:30.397631+00:00, sha d273d297244e)
  - site_page: https://preactjs.com/about/demos-examples (fetched 2026-08-29T09:07:30.400216+00:00, sha 2d1aa7e40993)
  - site_page: https://preactjs.com/about/browser-support (fetched 2026-08-29T09:07:30.403883+00:00, sha 2e2a90dfd4a8)
  - site_page: https://preactjs.com/guide/v11/signals (fetched 2026-08-29T09:07:30.405930+00:00, sha db5d02aa0bb3)
- Data as of 2026-08-30T08:39:29.467469+00:00.
