# heroku/react-refetch

A simple, declarative, and composable way to fetch data for React components

Repository: https://github.com/heroku/react-refetch
Canonical: https://ross.abutalabs.com/products/react-refetch
Homepage: https://blog.heroku.com/react-refetch
Language: JavaScript
License: NOASSERTION
License Family: other
Topics: react, rest, api, data, fetch
Last push: 2026-06-02T18:34:22+00:00

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

## Adoption (not part of the score)
Stars 3401, forks 137 (observed 2026-08-28T04:08:02.875032+00:00)

## What it is
React Refetch is a JavaScript library that lets you declaratively map React component props to REST API URLs, wrapping components in a connect()-style decorator to fetch data. It keeps components stateless and composable, inspired by react-redux, for apps that mostly render read-only server data.

## Use cases
- fetch rest api data in react components declaratively
- keep react components stateless while loading server data
- alternative to redux for read-only data fetching
- map props to urls in react
- compose data fetching for react components
- avoid boilerplate flux/redux for simple api-backed ui

## When to choose
- your react app mostly fetches and renders read-only data from a REST API
- you want a declarative, composable data-fetching layer without a full redux store
- you prefer connect()-style higher-order components over hooks-based fetching

## When to avoid
- your app has complex client-side state that redux or modern state managers handle better
- you are starting a new project and want actively maintained solutions like react-query or SWR
- you need React 18+ server components or hooks-based data fetching patterns

## Facets
- artifact type: library
- maturity: maintenance
- function: http-client, state-management, frontend-framework
- domain: web-development, frontend, apis
- platform: browser
- tags: react, data-fetching, rest-api, hoc, declarative-data, redux-alternative, nodejs, javascript

## Member repositories
- heroku/react-refetch (main) score 61

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:02.875032+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:38:41.530505+00:00, confidence not recorded.
  - readme: https://github.com/heroku/react-refetch (fetched 2026-08-28T04:08:02.875032+00:00, sha fb0155d76ffb)
  - homepage: https://blog.heroku.com/react-refetch (fetched 2026-08-29T09:33:09.905537+00:00, sha f41907c9abd6)
  - site_page: https://www.heroku.com/about (fetched 2026-08-29T09:33:09.920205+00:00, sha 4a16616f53f8)
  - site_page: https://devcenter.heroku.com/ (fetched 2026-08-29T09:33:09.908590+00:00, sha a4913cbe0771)
  - site_page: https://www.heroku.com/enterprise (fetched 2026-08-29T09:33:09.910510+00:00, sha 30fb3b2edb7a)
  - site_page: https://elements.heroku.com/ (fetched 2026-08-29T09:33:09.912523+00:00, sha b5c501b33653)
  - site_page: https://www.heroku.com/pricing (fetched 2026-08-29T09:33:09.914268+00:00, sha ad3ab004cd5d)
  - site_page: https://www.heroku.com/blog (fetched 2026-08-29T09:33:09.916925+00:00, sha df5e42db133d)
  - site_page: https://help.heroku.com/ (fetched 2026-08-29T09:33:09.918646+00:00, sha 3cd19fd26d3f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
