Skip to main content

Install the SDK

The SDK depends on @ekanos/integration-schema and @ekanos/ui, which come along automatically. You must also install six peer dependencies, plus two that @ekanos/ui needs:

Required peers

All six peers are declared as required — none is marked optional — so your package manager expects every one even if your integration only uses some of them: Install all six:

Also required by @ekanos/ui

@ekanos/ui comes along with the SDK, and it declares two peers of its own that your project must provide:
A project from ekanos init already has both. Outside Ekanos and the harness (a Storybook, a bare unit test), <Trans> needs a NextIntlClientProvider above it, or it throws; see Runtime notes. Importing i18next or react-i18next in an integration is now an error under the @ekanos/sdk/eslint preset.

Why peers?

Each of these creates React context. If two copies exist, one in your code and one in the host, a provider renders against instance A while a consumer reads instance B, finds nothing, and silently falls back to a default. Context bugs do not announce themselves. As peers, your package manager ensures one copy. As dependencies, npm is free to bundle two, and bundlers can inline multiple copies without telling you. This is not hypothetical — it happened to @ekanos/ui when five built entries each inlined their own copy of the icon module, so each got its own React context. A provider set one instance, components in other entries read another, found no provider, and fell back to a default Font Awesome weight the loaded font had no glyph for. If you bundle @ekanos/* into your own output, keep these singletons by treating them as externals in your build.

Next steps