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

TypeScript
92%
MIT

GB Studio

Design Tools · Developer Tools · Game Development

9,434

Drag-and-drop retro Game Boy game creator that compiles real ROMs — no coding required.

View details
88
Repo Health
83
Technical
72
Dependency
Built with
TypeScript 92%
Updated 1 weeks ago
TypeScript
47%
AGPL 3.0

Grafana

Analytics · Monitoring

77,469

The open-source observability platform that unifies metrics, logs, and traces from any data source into dynamic, queryable dashboards.

View details
95
Repo Health
91
Technical
63
Dependency
Built with
TypeScript 47%
Go 47%
Updated 5 days ago
TypeScript
73%
Apache 2.0

Jitsi Meet

Collaboration · Team Chat · Video Conferencing

30,130

Open-source, end-to-end encrypted video conferencing you can self-host or embed into any web or mobile app.

View details
96
Repo Health
85
Technical
67
Dependency
Built with
TypeScript 73%
Lua 11%
JavaScript 10%
Updated 6 days ago
TypeScript
77%
Other

Joplin

Note Taking

56,853

The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.

View details
93
Repo Health
87
Technical
60
Dependency
Built with
TypeScript 77%
JavaScript 14%
Updated 6 days ago
TypeScript
98%
Other

Kibana

Analytics · Monitoring

21,338

Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.

View details
98
Repo Health
87
Technical
63
Dependency
Built with
TypeScript 98%
Updated 5 days ago
TypeScript
94%
AGPL 3.0

Laudspeaker

Automation · Marketing

2,629

Open-source customer engagement platform for building visual, event-triggered messaging journeys across email, SMS, push, in-app, and webhooks.

View details
45
Repo Health
66
Technical
62
Dependency
Built with
TypeScript 94%
Updated 3 months ago
TypeScript
51%
Other

Mattermost

Collaboration · Devops · Team Chat

39,418

Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.

View details
96
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 51%
Go 40%
Updated 5 days ago
Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 5 days ago
Go
81%
GPL 3.0

Navidrome

File Storage · Music Audio

24,331

Run your own personal Spotify — stream your entire music collection from any device, anywhere, forever.

View details
91
Repo Health
81
Technical
66
Dependency
Built with
Go 81%
JavaScript 15%
Updated 6 days 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