Skip to main content

Welcome to Rematch blog

ยท 3 min read
Sergio Moreno

I'm super happy to announce that the new website is the continuation of the work that all of us who collaborate in Rematch have done altruistically because we love it.

Today we're announcing version 2.0.0 of Rematch. Almost 6 months passed since we opened the Roadmap V2 for Rematch. Here we are writing this post telling you guys all the incredible improvements and features we introduced to this new version of Rematch.

Bug fixesโ€‹

  • We're 100% compatible with TypeScript, YES!! Using createModel() helper we get autocomplete of effects, reducers, also the state, also we accept if the state is complex (like custom types) with a simple as. This is thanks to much people but Zhi Tian worked hard here with d.ts files, he's the type sorcerer.
tip

How to easily start with TypeScript + Rematch here

And no more bug fixes... because there aren't any. Rematch is consolidated as a stable alternative to Redux and other state-management solutions, it's fast, light, easy, and maintanaible. What else do we need?

New featuresโ€‹

  • We introduced a new method of directories, MONOREPO. Yes, we are using lerna to handle all the packages deployment and common dependencies.
  • We used tsdx for building our packages to UMD,CJS, and ES. That means we're compatible with all the formats that exists nowadays.
  • Now we collect all the errors you have on your configuration - (there's any?). And we throw all of them not just the first one. This avoids doing computation in production build, so we got some speed improvements.
  • Added new hooks for custom plugins: onReducer, and onRootReducer. Super useful if you pretend to migrate some native redux plugin to Rematch.

Choreโ€‹

  • We refactored the documentation to Docusaurus, now it contains a blog ;), also we have warnings if some link is broken, and a super cool landing page.
  • We worked hard to reduce bundle size a lot but still being compatible with Internet Explorer 11 is a must for us the results are incredible:
packageold versionlatest versiondiff
@rematch/core-106.12%
@rematch/loading-76.36%
@rematch/updated-87.18%
@rematch/select-24.24%
@rematch/persist-44.33%
@rematch/immer-189.75%

As you can see, holy moly, we reduced the size drastically.

  • Also we migrated from Travis.ci to Github Actions, and we're really happy with the change because we have three workflows:
    • Size Testing: we avoid regressions of size on each pull-request.
    • Pull Request title: we're using semantic-release to generate cool changelogs, we ensure that the title follows the angular convention.
    • Rematch CI: of course the main workflow that runs all the testing suite (also we test typescript types to avoid regressions).

In 2021 Redux isn't that cool as React.useContext, React.useReducer, or other alternatives of state-management like jotai, but we keep working hard inside Rematch to keep the essence of simplicity and still be in conjuntion with Redux to provide an easy and a powerful state-management solution to every project.

Happy new year to everyone!