It is located in the
webapp directory of the main Mattermost repository.
The web app is set up as a monorepo which has the code broken up into multiple packages. The main packages in the web app are:
channels- The main web app which contains Channels, the System Console, login/signup pages, and most of the core infrastructure for the app.
src/. Key folders include:
actions- Contains Redux actions which make up much of the view logic for the web app
components- Contains UI components and views written using React
i18n- Contains the localization files for the web app
packages/mattermost-redux- Contains most of the Redux logic used for handling data from the server
plugins- Contains the plugin framework, utility functions and components
reducers- Contains Redux reducers used for view state
selectors- Contains Redux selectors used for view state
tests- Contains setup code and mocks used for unit testing
utils- Contains many widely-used utility functions
platform- Packages used by the web app and related projects
components- A work-in-progress package containing UI components designed to be used by different parts of Mattermost
types- The TypeScript types used by Mattermost, available on NPM as @mattermost/types
Note that the webapp was previously located at https://github.com/mattermost/mattermost-webapp/. You may find additional history in this repository that was not migrated back to https://github.com/mattermost/mattermost when forming the monorepo.