Skip to content

Starter templates ​

Six curated starters live in starters/ in this repo. The canonical way to create a new project is through the wizard — never copy a folder directly:

bash
npx laikacli create

The wizard selects the starter, then asks which CMS backends, widgets, and locales to install and generates src/cms.ts from that selection. Flags --starter, --backends, --widgets, --locales, and --yes (accept defaults) make it scriptable.

The six starters ​

StarterDemonstrates
starter-vite-react-blogServer — SSR with bare Express + React, no meta-framework
starter-hono-blogSecure-by-default decap-api proxy (server, default)
starter-workers-blogRuntime-agnostic Cloudflare edge deploy
starter-astro-blogBuild-time via @laikacms/astro Content Layer
starter-github-blogDB-free, git-backed collections
starter-opfs-blogServerless in-browser storage via OPFS / storage/web-fs

See starters/README.md for full status notes, the version-sync policy, and workspace isolation details.

Version pinning ​

Starters pin published laikacms / @laikacms/* caret ranges — never workspace: or catalog: protocols — so a developer can install them outside this repo. The root version script keeps them current automatically; CI enforces drift via pnpm check:starters.

Building new apps by hand ​

If you prefer to wire an app without the wizard, these building blocks are the right starting point:

  • @laikacms/server/api — laikaApi(...), the Decap-compatible HTTP API. Mount .fetch on a catch-all route.
  • @laikacms/decap-cms/backends/laika — createLaikaBackend(), the Decap CMS backend the admin UI registers to talk to that API.
  • @laikacms/server/oauth2 — laikaOauth2(...), an optional PKCE OAuth2 login server.
  • A StorageRepository for your runtime — laikacms/storage/fs (Node), laikacms/storage/r2 (Workers / R2), laikacms/storage/drizzle, laikacms/storage/webdav, etc.

See Getting Started and the Decap integration guides for detailed wiring instructions.

Released under the MIT License.