This repository is a pnpm workspace. The actual CMS - @laikacms/decap-cms, a single-package
fork of Decap CMS - lives in
packages/decap-cms, which has the full README covering what the
fork is, how it differs from upstream, and how to use it.
npm install @laikacms/decap-cmsThe root export bootstraps the classic app. Individual parts (backends, widgets, the core engine, UI
primitives, plus the tree-shakeable @laikacms/decap-cms/app/bare and .../laika-app/bare entries)
are importable through subpath exports so you can assemble your own build. See the
package README for usage, visual editing, and the config JSON
Schema.
- Package README - installation, usage, visual editing, and the config JSON Schema
- Editor guide - for content editors: writing entries, the widget set, the editorial workflow, and the media library
- Community widgets - curated list of third-party
registerWidgetpackages, and how to list your own - Decap CMS documentation - configuration, content modeling, and backend setup; applies to this fork unless noted below
- Breaking changes in v4.beta - how this fork differs from upstream
- Laika backend notes - required reading if you
use the
laikabackend - Contributing docs - design decisions and learnings behind the repo
- CONTRIBUTING.md - development guide and release process
- Releases / change log - every version, documented
packages/
decap-cms/ the published @laikacms/decap-cms package (source, tests, demo, build)
decap-cms-lib-pat/ scoped Personal Access Token minting/hashing/verification for Decap CMS servers
extensions/
widgets/ registerWidget packages (map, lucide-icon, radix-icon, aichat)
editor/ editor-shell plugins (e.g. ai-translate)
llm/ LlmTransport implementations (dulla is the reference transport, see docs/core/llm.md)
docs/
contributing/ design decisions and learnings (see docs/contributing/index.md)
core/ core-engine notes
editor-guide.md end-user guide for content editors
community-widgets.md curated list of third-party registerWidget packages
The workspace shape lets sibling packages (plugins, tooling, server pieces) live under packages/
alongside the main CMS package without another restructure, mirroring the layout of the
laikacms/laikacms repo. extensions/ is a second, sibling root for packages that may only depend
on @laikacms/decap-cms through its published subpath exports (no reach into
packages/decap-cms/src) - widgets, editor plugins, and LLM transports fall here rather than under
packages/. The reasoning for both roots is documented in
restructure.md.
Everything runs from the root through pnpm:
pnpm install
pnpm test:ci # lint + typecheck + unit tests, per package
pnpm build # builds every package
pnpm build:dev-test && pnpm serve:dev-test # demo app on http://localhost:5174, Laika UI on /laika.htmlRepo-wide tooling (formatting via dprint, git hooks via husky, commit linting) lives at the root; each package is otherwise self-contained (its own tsconfig, ESLint config, tests, and build). See CONTRIBUTING.md for the development guide.