Split monorepo bootstrap for headless Craft CMS projects with a SvelteKit frontend.
backend/is the Craft CMS application and Composer root.frontend/is the SvelteKit application..ddev/serves Craft athttps://cms.<project>.ddev.siteand SvelteKit athttps://<project>.ddev.site.
./utility/install.shThe installer derives the DDEV project name from the folder name, writes local environment files, configures DDEV host routing, installs pnpm dependencies from the host before DDEV starts, installs Composer dependencies in DDEV, creates Craft keys, and runs Craft install. It resolves pnpm@latest through Corepack or npm exec corepack. It does not run a production frontend build.
The DDEV frontend daemon runs Vite directly with Node instead of pnpm run dev. Dependencies are installed from the host before DDEV starts, and avoiding pnpm in supervisor prevents non-TTY dependency repair prompts.
Server-side frontend requests call Craft through CRAFT_INTERNAL_HOST=http://0.0.0.0 inside DDEV. Browser-facing CMS links still use PUBLIC_CMS_URL=https://cms.<project>.ddev.site.
To run Craft install noninteractively, provide CRAFT_ADMIN_EMAIL, CRAFT_ADMIN_USERNAME, and CRAFT_ADMIN_PASSWORD. If any are omitted, the installer lets craft install/craft prompt for missing admin values.
ddev composer install
ddev craft up
corepack pnpm@latest install --frozen-lockfile
ddev pnpm --dir frontend run check
ddev pnpm --dir frontend test
ddev composer run check
ddev composer run pintRun dev or build scripts only after explicit approval in agent sessions.
api/page/<uri>api/seo/<uri>api/form/<handle>api/craftapi/navigationapi/footerapi/sharedapi/ping
Action endpoints:
actions/general/sessionactions/general/quick-edit/entry