Redux

A predictable, framework-agnostic state container for JavaScript applications.

Library
npm
v5.0.1
61,446 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
97 /100 Excellent
Development Activity 96
Maintenance 96
Community 96
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
90 /100 Excellent
Architecture 95
Code Quality 92
Innovation 90
Learning Curve 70

Redux is a tiny (~2kB) JavaScript library for predictable and maintainable global state management. It centralizes your application’s state in a single store, where the only way to change state is by dispatching plain-object actions that flow through pure reducer functions, making state transitions explicit, traceable, and easy to test.

Because the core is view-layer agnostic, Redux works with React, Vue, Angular, vanilla JS, or any other UI library, and runs the same way on the client, server, and native. Its strict unidirectional data flow enables powerful developer tooling like time-travel debugging, and a rich middleware ecosystem extends it for async logic, logging, and persistence.

What You Get

  • A single, centralized store holding the entire application state tree
  • Pure reducer functions for predictable, testable state transitions
  • A middleware pipeline (via applyMiddleware) for async logic, logging, and side effects
  • Store enhancers and the compose helper for composing store behavior
  • Framework-agnostic core that works with React, Vue, Angular, or vanilla JS
  • First-class TypeScript types for actions, reducers, middleware, and the store

Common Use Cases

  • Managing complex, shared UI state across many components in a single-page app
  • Providing a single source of truth for state that must stay consistent
  • Enabling time-travel debugging and action replay during development
  • Coordinating async data flows through middleware like thunks or sagas

Under The Hood

Architecture

Redux’s core is a handful of small, single-responsibility modules under src/. createStore.ts is the heart: it holds the current state in a closure, exposes getState, dispatch, subscribe, and replaceReducer, and runs each dispatched action through the root reducer to produce the next state, then notifies subscribers. combineReducers.ts composes a map of slice reducers into one root reducer; applyMiddleware.ts wraps dispatch in a chain of middleware built with the tiny compose.ts right-to-left function composer; bindActionCreators.ts is a convenience wrapper. The src/utils/ helpers (isPlainObject, isAction, actionTypes, kindOf, symbol-observable) guard invariants and provide the interop $$observable symbol.

Tech Stack

The library is written in TypeScript (85% of the codebase) with a small amount of JavaScript, targeting both ESM and CJS consumers via a dual-export package.json. It is built with tsup, type-checked and tested with Vitest (vitest --run --typecheck), and linted with ESLint and Prettier. The published core has essentially no runtime dependencies, keeping the bundle around 2kB.

Code Quality

The source is exceptionally clean and heavily typed, with extensive JSDoc on public APIs (including deprecation guidance steering users toward Redux Toolkit’s configureStore). Reducers and helpers are pure functions with explicit invariant checks that throw descriptive, production-minified error codes via formatProdErrorMessage. There is a thorough test suite — 22 spec files under test/ covering createStore, combineReducers, applyMiddleware, compose, and TypeScript type tests — exercising edge cases and error paths.

API Design The public surface is deliberately minimal and consistent: createStore, combineReducers, bindActionCreators, applyMiddleware, and compose, all exported from a single entry point with rich TypeScript generics for inferring state and action types. The conceptual model (store, action, reducer, middleware) is small and well documented at redux.js.org, though the surrounding patterns for async logic and immutability historically required boilerplate — which is why the team now points developers to Redux Toolkit for day-to-day use.

Used by 27 apps in this directory

Go
52%
Apache 2.0

opencloud

File Storage

6,218

Open source file management and collaboration platform that keeps your data under your control, no database required.

View details
86
Repo Health
80
Technical
68
Dependency
Built with
Go 52%
Gherkin 33%
PHP 11%
Updated 1 weeks ago
TypeScript
54%
Other

OpenReplay

Analytics

13,042

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
91
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 54%
Go 13%
Updated 1 weeks ago
JavaScript
90%
Other

OpenSign

Digital Signiture

7,163

Self-host a full-featured DocuSign alternative with unlimited e-signatures, multi-signer workflows, and cryptographic PDF signing.

View details
83
Repo Health
61
Technical
69
Dependency
Built with
JavaScript 90%
Updated 1 weeks ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

364

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
64
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 8 months ago
TypeScript
97%
AGPL 3.0

Responsively App

Design Tools · Developer Tools

25,464

Preview and interact with your responsive web design across every device size simultaneously — no more manual resizing.

View details
79
Repo Health
71
Technical
66
Dependency
Built with
TypeScript 97%
Updated 4 weeks ago
TypeScript
50%
Other

SigNoz

Analytics · Monitoring

32,429

Self-host your entire observability stack — logs, metrics, traces, and LLM monitoring — in one OpenTelemetry-native platform, without the Datadog bill.

View details
92
Repo Health
83
Technical
64
Dependency
Built with
TypeScript 50%
Go 38%
Updated 1 weeks ago
JavaScript
93%
Apache 2.0

swagger-ui

Developer Tools

29,042

Transform OpenAPI specifications into interactive, browser-based API documentation that developers and consumers can explore and test live.

View details
98
Repo Health
83
Technical
62
Dependency
Built with
JavaScript 93%
Updated 1 weeks ago
JavaScript
74%
AGPL 3.0

Twake Drive

Collaboration · File Storage

989

Open-source, self-hosted file manager with collaborative drives, AI-powered summarization, and OnlyOffice document editing for teams who want full data sovereignty.

View details
91
Repo Health
78
Technical
71
Dependency
Built with
JavaScript 74%
TypeScript 25%
Updated 1 weeks ago
TypeScript
96%
GPL 3.0

Wire

Collaboration · Team Chat · Video Conferencing

1,192

Open source end-to-end encrypted messaging for teams and enterprises — self-host for complete control over your communications and data.

View details
93
Repo Health
8
Technical
68
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers