{"id":13469496,"url":"https://github.com/preactjs/signals","last_synced_at":"2026-03-08T12:06:21.701Z","repository":{"id":58734312,"uuid":"522712696","full_name":"preactjs/signals","owner":"preactjs","description":"Manage state with style in every framework","archived":false,"fork":false,"pushed_at":"2026-02-22T09:12:56.000Z","size":2462,"stargazers_count":4375,"open_issues_count":48,"forks_count":120,"subscribers_count":26,"default_branch":"main","last_synced_at":"2026-02-22T12:23:46.494Z","etag":null,"topics":["preact","react","reactivity","signals","state-management"],"latest_commit_sha":null,"homepage":"https://preactjs.com/blog/introducing-signals/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/preactjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["preactjs"],"open_collective":"preact"}},"created_at":"2022-08-08T21:29:28.000Z","updated_at":"2026-02-22T06:00:13.000Z","dependencies_parsed_at":"2026-01-13T05:02:11.759Z","dependency_job_id":null,"html_url":"https://github.com/preactjs/signals","commit_stats":{"total_commits":601,"total_committers":48,"mean_commits":"12.520833333333334","dds":0.7670549084858569,"last_synced_commit":"69185eeb148806ea0e2f85a6d3564adabf95d1f3"},"previous_names":[],"tags_count":140,"template":false,"template_full_name":null,"purl":"pkg:github/preactjs/signals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preactjs%2Fsignals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preactjs%2Fsignals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preactjs%2Fsignals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preactjs%2Fsignals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/preactjs","download_url":"https://codeload.github.com/preactjs/signals/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preactjs%2Fsignals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29771067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:01:02.180Z","status":"ssl_error","status_checked_at":"2026-02-24T03:59:49.901Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["preact","react","reactivity","signals","state-management"],"created_at":"2024-07-31T15:01:42.363Z","updated_at":"2026-02-24T08:50:26.410Z","avatar_url":"https://github.com/preactjs.png","language":"TypeScript","readme":"# Signals\n\nSignals is a performant state management library with two primary goals:\n\n1. Make it as easy as possible to write business logic for small up to complex apps. No matter how complex your logic is, your app updates should stay fast without you needing to think about it. Signals automatically optimize state updates behind the scenes to trigger the fewest updates necessary. They are lazy by default and automatically skip signals that no one listens to.\n2. Integrate into frameworks as if they were native built-in primitives. You don't need any selectors, wrapper functions, or anything else. Signals can be accessed directly and your component will automatically re-render when the signal's value changes.\n\nRead the [announcement post](https://preactjs.com/blog/introducing-signals/) to learn more about which problems signals solves and how it came to be.\n\n- [Core API](./packages/core/README.md#guide--api)\n  - [`signal(initialValue)`](./packages/core/README.md#signalinitialvalue)\n    - [`signal.peek()`](./packages/core/README.md#signalpeek)\n  - [`computed(fn)`](./packages/core/README.md#computedfn)\n  - [`effect(fn)`](./packages/core/README.md#effectfn)\n  - [`batch(fn)`](./packages/core/README.md#batchfn)\n  - [`untracked(fn)`](./packages/core/README.md#untrackedfn)\n- [Debug Extension](./packages/debug/README.md#preact-integration)\n- [Preact Integration](./packages/preact/README.md#preact-integration)\n  - [Hooks](./packages/preact/README.md#hooks)\n  - [Rendering optimizations](./packages/preact/README.md#rendering-optimizations)\n    - [Attribute optimization (experimental)](./packages/preact/README.md#attribute-optimization-experimental)\n  - [Utility Components and Hooks](./packages/preact/README.md#utility-components-and-hooks)\n    - [Show Component](./packages/preact/README.md#show-component)\n    - [For Component](./packages/preact/README.md#for-component)\n    - [Additional Hooks](./packages/preact/README.md#additional-hooks)\n      - [`useLiveSignal`](./packages/preact/README.md#uselivesignal)\n      - [`useSignalRef`](./packages/preact/README.md#usesignalref)\n- [React Integration](./packages/react/README.md#react-integration)\n  - [Babel Transform](./packages/react/README.md#babel-transform)\n  - [`useSignals` hook](./packages/react/README.md#usesignals-hook)\n  - [Hooks](./packages/react/README.md#hooks)\n  - [Using signals with React's SSR APIs](./packages/react/README.md#using-signals-with-reacts-ssr-apis)\n  - [Rendering optimizations](./packages/react/README.md#rendering-optimizations)\n  - [Utility Components and Hooks](./packages/react/README.md#utility-components-and-hooks)\n    - [Show Component](./packages/react/README.md#show-component)\n    - [For Component](./packages/react/README.md#for-component)\n    - [Additional Hooks](./packages/react/README.md#additional-hooks)\n      - [`useLiveSignal`](./packages/react/README.md#uselivesignal)\n      - [`useSignalRef`](./packages/react/README.md#usesignalref)\n  - [Limitations](./packages/react/README.md#limitations)\n- [License](#license)\n\n## License\n\n`MIT`, see the [LICENSE](./LICENSE) file.\n","funding_links":["https://github.com/sponsors/preactjs","https://opencollective.com/preact"],"categories":["TypeScript","Uncategorized","State Managers"],"sub_categories":["Uncategorized","Signals"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreactjs%2Fsignals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpreactjs%2Fsignals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreactjs%2Fsignals/lists"}