Migrating Mattermost Webapp to Redux

The Mattermost webapp is going through a big restructuring effort to move from using Flux to Redux.

When we first started building the webapp, React was still new to the world, and so were the frameworks and design patterns. As a result, the webapp has had a lot of organic growth over the last couple of years, and is using an assortment of different design patterns.

This campaign is meant to help with that by moving the app state and logic into our Redux repository, and by migrating the webapp components to be pure with Redux to supply their props. By completing this campaign, we’re looking to:

  • Reduce complexity of the webapp and consolidate into a single design pattern.
  • Increase webapp performance through pure components and selector memoization.
  • Share state related logic with other Mattermost clients such as the mobile apps.

Contributing

If you’re interested in contributing, please join the Redux channel on pre-release.mattermost.com. Progress on moving individual components over to use Redux is tracked on this spreadsheet.

If you want to work on one of the components, let us know in the Redux channel or by making a comment on the spreadsheet. Help Wanted tickets will also be created in the mattermost/platform GitHub repository.

For guidance on migrating a webapp component to Redux, see our guide here.

1 Like