Build a pull-based deploy pipeline for a site on shared hosting

Ercan Atay used two Claude Code sessions, one writing and one reviewing, to build a Cloudflare Worker and GitHub Actions pipeline; the first automatic install took 21 seconds at $0 extra cost.

Done withClaude CodeinGitHubCloudflare· Oct 19, 2026

What they did

Ercan Atay runs an Astro static site in 26 languages on a shared cPanel account with no Node and a 1 GB quota. Deploys ran by rsync from his laptop, which had to stay awake and often lost the SSH connection. He wanted the server to fetch its own updates, with no public copy of the site anywhere and the SSH password never leaving the laptop. A Claude Code session first wrote a design document with routes, tokens, phases and done criteria. A cloud session then wrote the code on a branch: a three-job GitHub Actions build with build gates and a signed file manifest, a Cloudflare Worker with KV records sitting between GitHub and the server, and a server cron that checks every five minutes, verifies the build, installs it, smoke tests it and rolls back on error. A second, local session reviewed it with two parallel sub-agents and checked claims against the live server. Claude Code also set up the KV store, the Worker, the cron, the purge token and the GitHub secrets through the APIs.

How it went

Review went three rounds, with 15 findings in the first, 6 in the second and 5 in the third. Fixes included splitting the build so npm code never runs in a job with write access, pinning a third-party action to a commit hash, and giving each KV writer its own key after a single shared key lost install records. The first automatic install after a push took 21 seconds and wrote 194 of 902 files. New Medium posts reach the site within 25 minutes while the laptop is asleep. Extra cost is $0 on free Cloudflare and GitHub plans.

Worth knowing

Several facts the pipeline depends on, such as localhost not working on the host and Cloudflare Bot Fight Mode blocking the server's requests, were not documented anywhere and had to be measured on the server. Free-plan limits (1,000 KV writes a day, 10 ms CPU per Worker call) shaped the design. The author's view is that having a separate session review the code is what caught the errors.

Try it

With Claude Code· 4 parts to fill in

My site [repo] builds into static files and is deployed by hand to [shared hosting with cron but no Node]. Design a pipeline where the server pulls its own updates: a CI build that runs tests, checks the page count and expected files and writes a manifest of file hashes; a small [Cloudflare Worker or other relay] that records builds and serves the artifact behind a token; and a server cron that fetches pending builds, verifies the manifest, installs, smoke tests and rolls back on failure. Give each part only the one secret it needs and keep [my SSH password] off every service. Write the design document first and wait for my approval, then build it on a branch with tests and open a PR. Stop there so a separate review session can check it before anything is set up live.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related