# CLAUDE: `webapp/platform/` ## Purpose - Shared packages consumed by every Mattermost web experience (Channels, Boards, Playbooks, plugins). - Changes here affect multiple products—coordinate across teams before merging. ## Packages | Package | Directory | Purpose | |---------|-----------|---------| | `@mattermost/types` | `types/` | TypeScript type definitions | | `@mattermost/client` | `client/` | REST and WebSocket API client | | `@mattermost/components` | `components/` | Shared React components | | `@mattermost/shared` | `shared/` | Cross-product components and utilities for the web app and plugins (e.g. `Button`, `WithTooltip`). Prefer these over rolling your own | | `@mattermost/eslint-plugin` | `eslint-plugin/` | Custom ESLint rules | ## Workspace Basics - Each subpackage is its own npm workspace with independent `package.json`, tests, and build scripts. - Run commands with `npm run