# Launch > Reference sites from Patronage for running a CMS behind Cloudflare Access, with fast front-ends on Cloudflare Workers. ## Docs - [Launch](https://launch.patronage.com/): Reference sites from Patronage for running a CMS behind Cloudflare Access, with fast front-ends on Cloudflare Workers. - [Getting started](https://launch.patronage.com/getting-started): Install the workspace, run the checks, and start a reference site locally. - [Architecture](https://launch.patronage.com/architecture): The apps, the shared packages, and where each CMS ends and the shared front-end code begins. ## Deploying - [Deploying to Workers](https://launch.patronage.com/deploy): Every app in Launch deploys as a Cloudflare Worker with the cf CLI, configured in cloudflare.config.ts, with no Wrangler config in the repo. - [Workers Builds](https://launch.patronage.com/deploy/workers-builds): How each app builds and deploys on push with Cloudflare Workers Builds, with Preview URLs for every branch and no GitHub Actions. - [Deploying WordPress](https://launch.patronage.com/deploy/wordpress): Both WordPress installs deploy with wp-deploy, which pushes a packaged commit to the host's Git remote and checks that the host installed it. ## References - [Headless WordPress](https://launch.patronage.com/references/headless-wordpress): WordPress as an editor and a locked-down WPGraphQL API, with a vinext front-end on Workers that stays cached until an edit is published. - [Payload](https://launch.patronage.com/references/payload): Payload as one vinext app on Workers, with D1 as its database by default and Postgres through Hyperdrive kept as an option. - [Traditional WordPress](https://launch.patronage.com/references/timber-wordpress): WordPress rendering its own public site with a Timber theme, from the same fields, content and design tokens as the headless and Payload references. - [Shared UI](https://launch.patronage.com/references/ui): One UI package for the vinext front-ends, built on shadcn/ui and Tailwind 4, that takes plain props and knows nothing about any CMS. - [MCP server](https://launch.patronage.com/references/mcp): One MCP server per site that the team installs once, signs in to with Cloudflare Access, and that can only change content after a person approves. - [Signing in with WorkOS](https://launch.patronage.com/references/mcp-workos): What a site needs to sign its MCP users in with WorkOS AuthKit instead of Cloudflare Access. - [Logging](https://launch.patronage.com/references/logging): Wide events from each Worker and security events from WordPress, kept as files in one R2 bucket per site through Logpush and Basin Pipelines. ## Research - [Research](https://launch.patronage.com/research): Findings from the spikes that set up Launch, published as written from the repo's docs/spikes folder. - [vinext on Workers without Wrangler config](https://launch.patronage.com/research/vinext-on-workers) - [CMS-neutral sections from fixtures](https://launch.patronage.com/research/cms-neutral-sections) - [vinext front-end on headless WordPress over WPGraphQL](https://launch.patronage.com/research/vinext-on-headless-wordpress) - [Lock the CMS behind Cloudflare Access](https://launch.patronage.com/research/access-lockdown) - [Payload as one app under vinext on Workers](https://launch.patronage.com/research/payload-on-vinext) - [Workers Builds and preview URLs](https://launch.patronage.com/research/workers-builds) - [Payload's MCP plugin on Workers](https://launch.patronage.com/research/payload-mcp-plugin) - [wide-event logging and Logpush to R2](https://launch.patronage.com/research/logging-logpush) ## Decisions - [Decisions](https://launch.patronage.com/decisions): The choices made so far for Launch, the records behind them, and the ones still open. - [ADR 0001: One public reference monorepo](https://launch.patronage.com/decisions/public-reference-monorepo) - [ADR 0002: Plain pnpm workspaces with a release-age window](https://launch.patronage.com/decisions/plain-pnpm-workspaces) - [ADR 0003: Cloudflare config through the cf CLI and API, no Wrangler files](https://launch.patronage.com/decisions/cloudflare-config-through-cf-cli) - [ADR 0004: Local verification and Workers Builds, no GitHub Actions](https://launch.patronage.com/decisions/local-verification-and-workers-builds) - [ADR 0005: vinext front-ends on Cloudflare Workers](https://launch.patronage.com/decisions/vinext-front-ends-on-workers) - [ADR 0006: Separate headless and Timber WordPress installs](https://launch.patronage.com/decisions/separate-wordpress-installs) - [ADR 0007: Payload as one app on D1](https://launch.patronage.com/decisions/payload-single-app-on-d1) - [ADR 0008: A CMS-neutral content model with per-CMS adapters](https://launch.patronage.com/decisions/cms-neutral-content-model) - [ADR 0009: Shared UI on shadcn/ui and Tailwind 4](https://launch.patronage.com/decisions/shadcn-ui-package) - [ADR 0010: WordPress fields and post types in PHP](https://launch.patronage.com/decisions/wordpress-fields-in-php) - [ADR 0011: Every CMS behind Cloudflare Access](https://launch.patronage.com/decisions/cms-behind-cloudflare-access) - [ADR 0012: One MCP Worker with a backend per CMS](https://launch.patronage.com/decisions/one-mcp-worker) - [ADR 0013: The WordPress deploy kit lives in wordpress-shared](https://launch.patronage.com/decisions/wordpress-deploy-kit) - [ADR 0014: One MCP gateway Worker per site, published as packages](https://launch.patronage.com/decisions/mcp-gateway-worker) - [ADR 0015: WordPress fields are shared by both installs](https://launch.patronage.com/decisions/shared-wordpress-fields) - [ADR 0016: Each site's logs go to its own R2 bucket, through Logpush where it can](https://launch.patronage.com/decisions/logs-to-r2-through-logpush) ## Agent skills - [launch](https://launch.patronage.com/.well-known/agent-skills/launch/SKILL.md): Read the Launch docs instead of answering from memory. Reference sites from Patronage for running a CMS behind Cloudflare Access, with fast front-ends on Cloudflare Workers. Use when a task involves Launch: how it works, how to set it up or configure it, or its API. ## Agent resources - [llms-full.txt](https://launch.patronage.com/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://launch.patronage.com/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://launch.patronage.com/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://launch.patronage.com/openapi.json. - [Agent skills](https://launch.patronage.com/.well-known/agent-skills/index.json): Agent Skills discovery index of the skills this site publishes. - [API catalog](https://launch.patronage.com/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [AI catalog](https://launch.patronage.com/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs). - [agent-readability.json](https://launch.patronage.com/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://launch.patronage.com/sitemap.xml): Every indexable page URL with its last-modified date.