Every Foundation CMS site's front end is code in its own GitHub repository. A push to the default branch tells Foundation CMS, through a signed webhook, which version the site should run; the platform then deploys it, or shows "update available" in the site's admin, depending on the site's policy.
Overview
This integration connects Foundation CMS with GitHub. Foundation CMS is Swarm Labs' multi-tenant content management system on Cloudflare Workers. It holds a site's content and hands it to the site as whole, typed records, and every site runs as its own Worker with its own database and media bucket. Content lives in the CMS and presentation lives in code, and that code is a GitHub repository per site, usually started from the Foundation CMS site starter.
Business Context and Core Use Case
Agencies want design changes reviewed and versioned like any other code, and content changes made by clients without touching code. Keeping the two in different places, the repository and the CMS, lets each move at its own pace. GitHub is where the design changes are reviewed; Foundation CMS is where they go live.
The Applications Involved
Foundation CMS (Foundation CMS) records which version each site should run and which it is running, and deploys the site's Worker.
GitHub (GitHub) holds each site's repository and calls Foundation CMS when its default branch moves.
How the Integration Works
A pull request is reviewed and merged in GitHub. GitHub calls the Foundation CMS deploy webhook, signed with a shared secret. The push moves the site's intended version. With the site's deploy policy on automatic, the platform pulls that version and deploys it; on manual, the admin header shows that an update is available. Staff can also deploy any earlier version, which is how a rollback works, and every deploy is logged with who did it.
Immediate Operational Value
Merging is releasing, when you want it to be, and holding a release back is a setting rather than a branch strategy. The difference between what should be live and what is live is always visible.
Security, Access, and Governance
Webhooks with a bad signature are refused and logged. Manual deploys and rollbacks need a staff session on the platform plane, which signs in with passkeys only. The CMS never runs code from content; code only arrives through the repository.
Summary
GitHub holds each site's design as code; Foundation CMS deploys it on merge or waits for a person, and shows which version is live.
Frequently asked questions
Does every merge go live straight away?
Only if the site's deploy policy is automatic. On manual, the site's admin shows an update is available and a person deploys it.
Can we roll back?
Yes. Staff can deploy any earlier version from the platform plane, and the deploy is logged.
Do clients need GitHub accounts?
No. Clients edit content in the CMS; GitHub is only for the site's code.





