# baconjs/bacon.js

Functional reactive programming library for TypeScript and JavaScript

Repository: https://github.com/baconjs/bacon.js
Canonical: https://ross.abutalabs.com/products/baconjs
Homepage: https://baconjs.github.io
Language: TypeScript
License: MIT
License Family: permissive
Last push: 2025-04-18T11:27:53+00:00

## Health v2 (maintenance only)
Score: 40/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 17, release rhythm 35, longevity 100
- inputs: {"age_days": 5297, "days_push": 502, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 6456, forks 328 (observed 2026-08-28T04:09:43.541540+00:00)

## What it is
Bacon.js is a functional reactive programming (FRP) library for TypeScript and JavaScript, built around event streams and observable properties. It lets developers compose asynchronous events declaratively with combinators like map, filter, merge, combine, flatMap, and scan instead of imperative callback code.

## Use cases
- handle UI click events as declarative event streams
- debounce and dedupe user input for search-as-you-type queries
- accumulate state from events with scan (e.g., a counter)
- combine async data from multiple sources with merge and combine
- replace nested callback spaghetti with functional event composition
- reactive programming in Node.js server code

## When to choose
- you want a lightweight, mature FRP library with first-class TypeScript types
- you prefer event streams and properties over RxJS's larger API surface
- you need to tame complex asynchronous event handling in browser or Node apps

## When to avoid
- your team already standardizes on RxJS or another reactive library
- you need a full reactive state management solution with store integration
- you want a library with very active recent development and large community

## Facets
- artifact type: library
- maturity: maintenance
- function: state-management, developer-tools
- domain: web-development, frontend, programming-languages
- platform: browser, cross-platform
- tags: functional-reactive-programming, event-streams, observables, frp, typescript, reactive-programming, nodejs, web-server

## Member repositories
- baconjs/bacon.js (main) score 40

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:43.541540+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-29T17:44:38.392279+00:00, confidence not recorded.
  - readme: https://github.com/baconjs/bacon.js (fetched 2026-08-28T04:09:43.541540+00:00, sha 920c4646cbae)
  - homepage: https://baconjs.github.io (fetched 2026-08-29T08:41:35.434409+00:00, sha 2d4c4a7e6471)
- Data as of 2026-08-30T08:39:29.467469+00:00.
