--- title: "Rocket Chat Repository Structure" slug: "repository-structure" description: "Explore Rocket Chat’s repository structure. Understand folders, code organisation, and secure collaboration for developers." updated: 2026-02-06T16:49:01Z published: 2026-02-06T16:49:01Z canonical: "developer.rocket.chat/repository-structure" --- > ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Repository Structure This document outlines the structure of the Rocket.Chat server repository to help developers navigate the codebase. **Key characteristics** - The repository follows a modular architecture that separates functionality across packages and services. See the server architecture documentation for details. - Rocket.Chat uses a [monorepo](https://github.com/RocketChat/fuselage/wiki#fuselage-monorepo) to manage shared code and packages across projects such as [Apps-Engine](https://github.com/RocketChat/Rocket.Chat.Apps-engine) and [Livechat](https://github.com/RocketChat/Rocket.Chat.Livechat).. - Core components are built using [Meteor](https://www.meteor.com/) and [React.](https://reactjs.org/). Familiarity with these frameworks is recommended. > [!WARNING] > **Planned change:** > > Rocket.Chat is transitioning away from Meteor toward a more manual structure to support increased flexibility and scalability. ## Directory structure ```graphql Rocket.Chat ├── README.md ├── _templates/ ├── apps/ │   └── meteor/ │       ├── app/            # Features of Rocket.Chat │       ├── client/         # General frontend only related code │       ├── definition/ │       ├── ee/             # Enterprise related code │       ├── imports/ │       ├── install.sh* │       ├── lib/            # Helper functions, classes, and methods │       ├── package.json │       ├── packages/       # Meteor packages customized in use │       ├── private/        # Private files and assets only available within the project │       ├── public/         # Publicly available files served directly from the project root │       ├── server/         # Server side only code │       ├── tests/          # Tests ├── ee/ │   └── apps/ ├── package.json ├── packages/               # Houses sharable code that can be used by different projects │   ├── agenda/ │   ├── api-client/ │   ├── cas-validate/ │   ├── core-typings/       # Type definitions used for core Rocket.Chat │   │   ├── src/ │   ├── eslint-config/      # Config files and rules for code and unit tests │   │   ├── best-practices/ │   │   ├── errors/ │   │   ├── ... │   │   └── variables/ │   ├── livechat/ │   ├── model-typings/ │   ├── models/ │   ├── rest-typings/        # Signatures of endpoints │   ├── ui-client/ │   ├── ui-contexts/ │   └── ui-video-conf/ ``` ### Key directories The following directories provide the foundation for Rocket.Chat’s application structure. | Directory | Description | | --- | --- | | `apps/meteor/app/` | Contains feature-specific code organized into client and server components. Shared logic is typically located in the `lib/` directory. | | `apps/meteor/client/views/` | Holds the UI views rendered on the client. The application root file is located at `client/views/root/AppRoot.tsx`. | | `apps/meteor/client/lib/` | Provides shared client-side utilities and reusable logic to support application features. | | `apps/meteor/packages/` | Includes Meteor packages used by the application, including customized packages for specific functionality. Examples include packages for authentication and internationalization, such as `meteor-accounts-linkedin` and `rocketchat-i18n`. | | `apps/meteor/server/methods/` | Defines server-side Meteor methods that handle application logic. | | `apps/meteor/server/lib/` | Contains shared server utilities and supporting logic used across backend components. | > [!NOTE] > For more information about Meteor, see the [Meteor documentation.](https://guide.meteor.com/structure.html) > [!WARNING] > **Architecture note** > > New features are being developed outside the legacy Meteor structure within the `apps/` directory, while existing Meteor-based components continue to be maintained.