Edge-portable standalone Gutenberg CMS skeleton.
apps/api: edge-functions entrypoints (platform-agnostic)apps/admin-web: web admin integration stubs for Gutenberg + canonical SDKpackages/ports: DI ports for runtime and infrastructurepackages/domain: entities and invariantspackages/contracts: API contract schemaspackages/publish: release manifest and artifact generationpackages/cloudflare: Cloudflare reference adapters onlypackages/sdk: canonical API clientpackages/testing: in-memory adapters and tests
npm testnpm run start:apinpm run check:boundariesnpm run test:wrangler(local Wrangler smoke: auth -> publish -> private -> preview -> releases)npm run test:wrangler:deployed(deployed smoke; requiresGCMS_BASE_URLandGCMS_ADMIN_PASS)npm run test:coverage(runs coverage and enforces min thresholds; excludes test helper files from threshold math)
- Keep secrets out of
wrangler.toml. - For local dev, copy
.dev.vars.exampleto.dev.varsand set real values. - For deployed environments, use Wrangler secrets:
wrangler secret put TOKEN_KEYwrangler secret put PREVIEW_TOKEN_KEYwrangler secret put PRIVATE_CACHE_SCOPE_KEYwrangler secret put BOOTSTRAP_ADMIN_PASSWORD
- Set
BOOTSTRAP_ADMIN_USERNAMEinwrangler.toml(or env) for first-user bootstrap; no default admin is created when bootstrap creds are absent.