Skip to content

Registering Modules

One bundle serves every module your manifest declares. Register each module at the top level of the entry file with the matching prepare* function; when Crowdin renders the app, the SDK invokes the registered module that matches the host context:

import { prepareProjectMenu } from "@crowdin/serverless-apps-sdk";
import { createRoot } from "react-dom/client";
import { App } from "./App";
prepareProjectMenu({
render() {
createRoot(document.getElementById("root")!).render(<App />);
},
});

If the manifest declares several modules of the same type, pass the module key as the second argument: prepareProjectMenu({ … }, "my-key").

The table lists every module type this SDK version supports. The set grows with the Crowdin platform, and a new type always arrives together with an SDK release (the matching prepare* function and manifest schema entry), so keep @crowdin/serverless-apps-sdk up to date to pick up new placements.

Manifest module typeFunctionCrowdin reference
editor-right-panelprepareEditorRightPanelmodule docs
editor-translations-panelprepareEditorTranslationsPanelmodule docs
editor-asset-panelprepareEditorAssetPanelmodule docs
editor-background-workerprepareEditorBackgroundWorker-
project-toolsprepareProjectToolsmodule docs
project-menuprepareProjectMenumodule docs
project-menu-crowdsourceprepareProjectMenuCrowdsourcemodule docs
project-reportsprepareProjectReportsmodule docs
project-integrationsprepareProjectIntegrationsmodule docs
profile-resources-menuprepareProfileResourcesMenumodule docs
profile-settings-menuprepareProfileSettingsMenumodule docs
organization-menuprepareOrganizationMenumodule docs
organization-settings-menuprepareOrganizationSettingsMenumodule docs
organization-menu-crowdsourceprepareOrganizationMenuCrowdsourcemodule docs
modalprepareModalmodule docs
chatprepareChatmodule docs
context-menuprepareContextMenumodule docs
navbar-extensionprepareNavbarExtension-

The linked references describe where each module appears in the Crowdin UI and how it behaves. Their manifest examples are written for classic (backend) Crowdin apps - for serverless apps, declare modules as described in the manifest reference.

Two types have no reference page yet:

  • editor-background-worker runs in the editor without any visible panel - useful for reacting to editor events and preparing suggestions in the background.
  • navbar-extension is a flyout panel opened from the Crowdin navigation bar; close it programmatically with closeNavbarExtension().