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").
All module types
Section titled “All module types”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 type | Function | Crowdin reference |
|---|---|---|
editor-right-panel | prepareEditorRightPanel | module docs |
editor-translations-panel | prepareEditorTranslationsPanel | module docs |
editor-asset-panel | prepareEditorAssetPanel | module docs |
editor-background-worker | prepareEditorBackgroundWorker | - |
project-tools | prepareProjectTools | module docs |
project-menu | prepareProjectMenu | module docs |
project-menu-crowdsource | prepareProjectMenuCrowdsource | module docs |
project-reports | prepareProjectReports | module docs |
project-integrations | prepareProjectIntegrations | module docs |
profile-resources-menu | prepareProfileResourcesMenu | module docs |
profile-settings-menu | prepareProfileSettingsMenu | module docs |
organization-menu | prepareOrganizationMenu | module docs |
organization-settings-menu | prepareOrganizationSettingsMenu | module docs |
organization-menu-crowdsource | prepareOrganizationMenuCrowdsource | module docs |
modal | prepareModal | module docs |
chat | prepareChat | module docs |
context-menu | prepareContextMenu | module docs |
navbar-extension | prepareNavbarExtension | - |
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-workerruns in the editor without any visible panel - useful for reacting to editor events and preparing suggestions in the background.navbar-extensionis a flyout panel opened from the Crowdin navigation bar; close it programmatically withcloseNavbarExtension().