Skip to content

Imports ​

Every import path, grouped by what it does. The Install column is the command that makes the import available; everything else works the same whichever install it comes from.

Storage, documents, and assets backends are listed separately under Adapters.

Content ​

The interfaces every backend implements, and the JSON:API handlers that serve them over HTTP.

ImportInstallWhat it does
laikacms/storagepnpm add laikacmsStorageRepository: objects, folders, and atoms
laikacms/documentspnpm add laikacmsDocumentsRepository: documents with drafts, publishing, revisions
laikacms/assetspnpm add laikacmsAssetsRepository: media files with URLs and image variations
laikacms/catalogpnpm add laikacmsCatalogProvider: collections and their JSON Schemas
laikacms/storage/apipnpm add laikacmsbuildJsonApi: a storage repository as a JSON:API handler
laikacms/documents/apipnpm add laikacmsA documents repository as a JSON:API handler
laikacms/assets/apipnpm add laikacmsAn assets repository as a JSON:API handler
laikacms/catalog-apipnpm add laikacmsCatalog settings as a JSON:API handler
laikacms/json-apipnpm add laikacmsShared JSON:API helpers, including the explicit allowAll policy

Catalogs ​

Where collection definitions come from.

ImportInstallWhat it does
laikacms/catalog-conventionpnpm add laikacmsCollections by convention: each collection is the folder with the same name. Defaults are created on first use, no seeding needed.
laikacms/catalog-decappnpm add laikacmsCollections derived from a Decap CMS config, so the server and the editor share one source of truth. Supports multi-folder and nested collections.
@laikacms/aws/catalog-ddbpnpm add laikacms @laikacms/awsCatalog settings stored in DynamoDB

Serializers ​

Any serializer works with any storage adapter. Register one per file extension.

ImportInstallWhat it does
laikacms/serializers/jsonpnpm add laikacmsJSON
laikacms/serializers/yamlpnpm add laikacmsYAML
laikacms/serializers/markdownpnpm add laikacmsMarkdown with frontmatter
laikacms/serializers/rawpnpm add laikacmsRaw text or binary, stored as-is

Running tasks ​

ImportInstallWhat it does
laikacms/compatpnpm add laikacmsrunTask and collectStream: run tasks and streams as Promises, without importing Effect. Pass onProgress to receive progress and recoverable warnings.
laikacms/corepnpm add laikacmsLaikaTask, LaikaStream, shared types, and errors, for code that uses Effect directly

Errors ​

ImportInstallWhat it does
laikacms/core/errorspnpm add laikacmsEvery LaikaError class. Commonly caught: NotFoundError, BadRequestError, ForbiddenError, LockConflictError, VersionMismatchError, EntryAlreadyExistsError, TooManyRequestsError
laikacms/core/errors-extrapnpm add laikacmsHTTP mapping for errors: ErrorCodeToStatusMap (error code to HTTP status), ErrorCodeToKeyMap, ErrorClasses

Serving and authentication ​

ImportInstallWhat it does
@laikacms/server/apipnpm add laikacms @laikacms/serverlaikaApi: documents, storage, and assets behind one authenticated endpoint
@laikacms/server/oauth2pnpm add laikacms @laikacms/serverA self-contained OAuth2 login server: PKCE, email and password, passkeys, TOTP two-factor
@laikacms/server/oauth2/i18npnpm add laikacms @laikacms/serverTranslations for the login pages (…/en, …/nl)
laikacms/authpnpm add laikacmsScopes (hasScope, requireScope, …), personal access tokens (mintPersonalAccessToken, hashToken, …), and resolveBearer
laikacms/locks/in-processpnpm add laikacmsInProcessLockManager: advisory document locks for a single server process

See Authentication for how these fit together.

Uploads ​

ImportInstallWhat it does
laikacms/file-sanitizerpnpm add laikacmsStrips privacy-sensitive metadata from PNG, GIF, WebP, and JPEG uploads, and scans for dangerous content (sanitizeFile, canSanitize)
laikacms/sanitizerpnpm add laikacmsThe Sanitizer interface assets repositories accept, for plugging in your own sanitizer

Integrations ​

ImportInstallWhat it does
@laikacms/astropnpm add laikacms @laikacms/astroAstro integration: dev JSON:API, content hot reload, types
@laikacms/astro/loaderpnpm add laikacms @laikacms/astroContent Layer loaders: documentsLoader(), objectsLoader(), laikaCollections()
@laikacms/astro/livepnpm add laikacms @laikacms/astroliveDocumentsLoader() for live collections and draft previews
@laikacms/astro/apipnpm add laikacms @laikacms/astrocreateApiHandler: serve the API from an Astro route
@laikacms/astro/testingpnpm add laikacms @laikacms/astroA fake LoaderContext for testing loaders without booting Astro
@laikacms/vite-pluginpnpm add laikacms @laikacms/vite-pluginVite plugin: import content as ES modules at build time

Decap CMS ​

ImportInstallWhat it does
@laikacms/decap-cmspnpm add '@laikacms/decap-cms@^4.1.0' @emotion/react @emotion/styledThe Laika-enabled Decap CMS editor (details)
@laikacms/decap-cms/backends/laikasame as abovecreateLaikaBackend(): connects the editor to your Laika API
@laikacms/decap-cms/widgets/*same as aboveExtra widgets: AI chat, icon pickers
@laikacms/server/aipnpm add laikacms @laikacms/server aiServer side of the editor's AI assistant
@laikacms/server/embeddedpnpm add laikacms @laikacms/servercreateEmbeddedLaika(): a complete filesystem-backed backend from one options object (Node.js only)
@laikacms/git-gatewaypnpm add @laikacms/git-gateway honoA Netlify git-gateway replacement

Writing your own adapter ​

ImportInstallWhat it does
laikacms/storage/testingpnpm add laikacmsContract tests for StorageRepository implementations
laikacms/documents/testingpnpm add laikacmsContract tests for DocumentsRepository, plus InMemoryDocumentsRepository, a fast in-memory backend for tests
laikacms/assets/testingpnpm add laikacmsContract tests for AssetsRepository implementations

Utilities ​

ImportInstallWhat it does
laikacms/core/utilitiespnpm add laikacmsDependency-free helpers (memoize, lazy, Url, Header, Paths) that don't pull in Effect
laikacms/core/types/*pnpm add laikacmsIndividual type modules: datetime, mime-type, pagination, role, …
laikacms/cryptopnpm add laikacmsHashing, password hashing, constant-time comparison, randomness. Import laikacms/crypto/<module> to pull in one part only
laikacms/i18npnpm add laikacmsShared UI strings: OK, Cancel, Save, … (…/en, …/nl)

Older dashed import names (laikacms/storage-fs, laikacms/storage-serializers-json, …) are aliases of the paths above and resolve to the same modules.

Released under the MIT License.