# reflex-frp/reflex

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Repository: https://github.com/reflex-frp/reflex
Canonical: https://ross.abutalabs.com/products/reflex-frp-reflex
Homepage: https://reflex-frp.org
Language: Haskell
License: BSD-3-Clause
License Family: permissive
Topics: haskell, reactive, reflex-frp, functional-reactive-programming, frp
Last push: 2026-08-29T15:37:48+00:00

## Health v2 (maintenance only)
Score: 79/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 41, longevity 100
- inputs: {"age_days": 4315, "days_push": 4, "days_rel": 317, "gap_med": 70.0, "n_releases_24m": 5}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1115, forks 151 (observed 2026-09-01T02:14:06.309156+00:00)

## What it is
Reflex is a Haskell library providing a fully-deterministic, higher-order Functional Reactive Programming (FRP) interface with an efficient engine implementing it. It lets developers describe interactive systems as pure functions using composable events and time-varying values, without callbacks or side-effects.

## Use cases
- write interactive programs without callbacks or side-effects
- build self-updating user interfaces in Haskell
- model time-varying data and event streams reactively
- develop cross-platform apps (web, mobile, desktop) in one codebase
- reduce bugs in event-driven code with pure functional reactive design
- build single-page web apps with reflex-dom on top of Reflex

## When to choose
- you program in Haskell and want deterministic, composable handling of events and dynamic values
- you want to build highly interactive UIs (e.g., with reflex-dom or Obelisk) without callback spaghetti
- you need one Haskell codebase across web, mobile, and desktop
- you value maintainability and reusability of reactive code

## When to avoid
- your team does not know Haskell or functional programming
- you need a quick JavaScript/TypeScript frontend with a large ecosystem
- your project is simple enough that FRP abstractions add unnecessary complexity
- you need non-deterministic or imperative event handling

## Facets
- artifact type: library
- maturity: active
- function: state-management, concurrency, developer-tools
- domain: web-development, cross-platform, programming-languages
- platform: cross-platform
- tags: frp, haskell, reactive-programming, events, time-varying-values, deterministic, functional-reactive-programming, web-server, desktop, mobile

## Member repositories
- reflex-frp/reflex (main) score 79

## Provenance
- Observed fields: from GitHub, fetched 2026-09-01T02:14:06.309156+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-30T06:42:11.831676+00:00, confidence not recorded.
  - readme: https://github.com/reflex-frp/reflex (fetched 2026-09-01T02:14:06.309156+00:00, sha db85eeb993c0)
  - homepage: https://reflex-frp.org (fetched 2026-08-29T12:45:58.394278+00:00, sha 36ae7a711f52)
- Data as of 2026-08-30T08:39:29.467469+00:00.
