# SDK Overview

[`@crowdin/serverless-apps-sdk`](https://www.npmjs.com/package/@crowdin/serverless-apps-sdk) is the typed SDK for building serverless Crowdin apps - frontend-only apps that run inside the Crowdin UI. The SDK is your bundle's connection to Crowdin: it registers the app's modules, exposes typed context, events, and host actions, and ships a Crowdin REST API client that works without tokens, a UI kit styled to match Crowdin, and an i18n runtime.

## Installation

<PackageManagers pkg="@crowdin/serverless-apps-sdk" />

`react`, `react-dom`, and the Lingui packages are optional peer dependencies: the core entry point works without them; install them to use the `/react`, `/ui`, or `/i18n` entry points. Apps scaffolded with the [CLI](/serverless-apps/reference/cli-commands/) come with all of this preconfigured.

## Entry points

| Import | Contents |
|--------|----------|
| `@crowdin/serverless-apps-sdk` | Framework-free core: [module registration](/serverless-apps/building-app/modules/) (`prepare*`), [context and events](/serverless-apps/building-app/context/), [host actions](/serverless-apps/building-app/host-actions/) (`editor`, `project`, `profile`, `modal`, …) |
| `@crowdin/serverless-apps-sdk/react` | `AppUiProvider`, `useCrowdinContext`, `useCrowdinEvent`, `useTheme` |
| `@crowdin/serverless-apps-sdk/ui` | React [component library](/serverless-apps/building-app/user-interface/) styled to match the Crowdin UI (also re-exports `/react`) |
| `@crowdin/serverless-apps-sdk/ui/theme.css` | Tailwind theme source - for apps that run Tailwind CSS themselves (CLI-built apps do) |
| `@crowdin/serverless-apps-sdk/ui/styles.css` | Prebuilt stylesheet - for apps that do not use Tailwind |
| `@crowdin/serverless-apps-sdk/i18n` | [`AppI18nProvider`](/serverless-apps/building-app/i18n/) - Lingui-powered translations of your app's own UI |
| `@crowdin/serverless-apps-sdk/api` | [`createCrowdinClient()`](/serverless-apps/building-app/crowdin-api/) - Crowdin REST API client executed by the host |
| `@crowdin/serverless-apps-sdk/manifest.schema.json` | JSON Schema for [`manifest.json`](/serverless-apps/reference/manifest/) |

## Upgrading

The SDK and the [CLI](/serverless-apps/reference/cli-commands/) are released in lockstep - upgrade both together:

```bash
pnpm up @crowdin/serverless-apps-sdk @crowdin/serverless-apps-cli
```

New [module types](/serverless-apps/building-app/modules/), events typings, and manifest schema entries arrive with SDK releases, so an upgrade is how the app picks up new platform placements. After upgrading, `crowdin-serverless-apps manifest status` shows whether the stored manifest needs a push.