immerjs/immer

Create the next immutable state by mutating the current one

28,982

stars

1,506

commits

JavaScript

primary language

Sep 11, 2026

updated

immerjs.github.io/immer/
immutable
immutables
reducer
redux
state-tree

README

Immer

npm Build Status Coverage Status code style: prettier OpenCollective OpenCollective Gitpod Ready-to-Code

Create the next immutable state tree by simply modifying the current tree

Winner of the "Breakthrough of the year" React open source award and "Most impactful contribution" JavaScript open source award in 2019

Contribute using one-click online setup

You can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:

  • clone the immer repo.
  • install the dependencies.
  • run yarn run start.

so that you can start coding straight away.

Open in Gitpod

Documentation

The documentation of this package is hosted at https://immerjs.github.io/immer/

Support

Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!

Release notes

https://github.com/immerjs/immer/releases

Contributors

(top 30 of 206)

mweststrate

786 commits

aleclarson

206 commits

dependabot[bot]

141 commits

markerikson

42 commits

immerjs/immer

Create the next immutable state by mutating the current one

28,982

stars

1,506

commits

JavaScript

primary language

Sep 11, 2026

updated

immerjs.github.io/immer/
immutable
immutables
reducer
redux
state-tree

README

Immer

npm Build Status Coverage Status code style: prettier OpenCollective OpenCollective Gitpod Ready-to-Code

Create the next immutable state tree by simply modifying the current tree

Winner of the "Breakthrough of the year" React open source award and "Most impactful contribution" JavaScript open source award in 2019

Contribute using one-click online setup

You can use Gitpod (a free online VSCode like IDE) for contributing online. With a single click it will launch a workspace and automatically:

  • clone the immer repo.
  • install the dependencies.
  • run yarn run start.

so that you can start coding straight away.

Open in Gitpod

Documentation

The documentation of this package is hosted at https://immerjs.github.io/immer/

Support

Did Immer make a difference to your project? Join the open collective at https://opencollective.com/immer!

Release notes

https://github.com/immerjs/immer/releases

Contributors

(top 30 of 206)

mweststrate

786 commits

aleclarson

206 commits

dependabot[bot]

141 commits

markerikson

42 commits

Languages

JavaScript

52.1%

TypeScript

25.1%

MDX

15.5%

HTML

7.0%