Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Pantheon's monorepo for JavaScript SDKs, starter examples, and published npm packages.
Pantheon Systems Decoupled Kits is a monorepo of JavaScript starter kits, reusable npm packages, and SDKs maintained by Pantheon for building decoupled Drupal and WordPress sites with Next.js and Gatsby.
Pantheon Decoupled Kits is a monorepo organized by pnpm workspaces, containing two main workspaces: starters (starter kits like gatsby-wordpress-starter) and packages (publishable npm libraries such as nextjs-kit), plus a configs workspace and a web workspace for documentation. It serves as Pantheon's central codebase for headless CMS front-end projects. The repo takes starter kit source code and packages as input, and produces standalone starter repositories and published npm packages through its release automation.
starters, packages, configs, and web workspaces; each starter directory is mirrored to its own standalone repo at release time.gatsby-wordpress-starter, runnable with pnpm --filter gatsby-wordpress-starter develop.packages workspace contains libraries like nextjs-kit that are published to npm and consumed by the public and by the starter kits.pnpm changeset to generate Markdown changelog files in the .changeset directory; CI creates versions automatically.canary branch triggers a GitHub Action that opens a PR and, on merge, publishes changed packages to the canary tag on GitHub and npm.pnpm --filter to run commands in a specific project, e.g. pnpm --filter './starters/**' lint to lint all starters.web workspace has its own docs, built with pnpm generate-docs and served with pnpm start:docs.pnpm install, pnpm husky install), and submit changes via bug report or feature request templates.pnpm --filter gatsby-wordpress-starter develop to launch the Gatsby starter locally against a WordPress backend.nextjs-kit and other published packages into your own decoupled front-end applications.pnpm changeset, and let CI handle canary releases and splitting.pnpm generate-docs to compile the docs from the web workspace.To set up the monorepo: install Node.js LTS, npm 10.x, and pnpm 8.x; fork and clone the GitHub repo; run pnpm install to install dependencies and trigger a postinstall build of packages; then run pnpm husky install to activate pre-commit hooks. From there, you can use pnpm test, pnpm build:pkgs, or filtered commands to develop and test projects.
You need Node.js LTS (nvm is recommended), npm version 10.x, and pnpm version 8.x. The README suggests installing pnpm globally with npm install -g pnpm@8.
From the repository root, use the filter flag: pnpm --filter gatsby-wordpress-starter develop. This starts the Gatsby starter without needing to cd into the project directory.
Each push to the canary branch runs the canary-release.yml workflow, which opens a PR back to the repo. On merge, any package with a changeset is released to the canary tag on GitHub and npm.
The README links to a bug report template and a feature request template under GitHub issues, so you can file issues against the monorepo directly.
