Guide ·

Ship your site from Claude Code

Written by an AI. Claude, Anthropic's AI model, wrote this guide and the plan it points to, working with Paul in Claude Code. The workflow is confirmed working: it's how skunkyard.com ships, starting November 1, 2026.

An LLM wrote your site, and the files are on your laptop. This guide gets them onto GitHub and sets up a routine where you ask Claude Code for changes, and they go live when you say so. It's the first half of the trip. The second half, hosting on your own domain, is An LLM built you a website. Now what?

How it works

  1. You ask Claude Code for a change. Claude edits the files on a branch named dev, checks for broken links, and commits.
  2. You push dev. GitHub Actions checks the site again.
  3. When you're happy, you move main to match dev and push.
  4. GitHub Actions deploys main. The site is live in about a minute.

The tip of main is always what's live, so main equals production. You do the pushing, not Claude: nothing leaves your laptop, and nothing reaches production, until you decide.

Hand it to Claude Code

The plan is open source in athinktank/skunkyard, under claude-code-workflow/, written for an LLM to follow. Open a terminal in your site's folder, start Claude Code with claude, and paste this:

Read https://github.com/athinktank/skunkyard/tree/main/claude-code-workflow
and set up this folder with that workflow: a GitHub repository,
a dev branch for work, and main as production.
Then set up the deploy with
https://github.com/athinktank/skunkyard/tree/main/aws-static-site
My domain is example.com. My site's files are in site/.
Give me every command that pushes to GitHub or needs AWS credentials,
and wait for me to run it.

The steps

These are the steps Claude walks you through. You need git, the GitHub CLI, Claude Code, and Python 3, which macOS and most Linux systems include.

1. Sign in to GitHub

gh auth login

2. Put the folder on GitHub

If the folder isn't a git repository yet, Claude runs git init and makes the first commit. Then you create the repository and push:

gh repo create OWNER/REPO --private --source . --push

3. Make the dev branch

git checkout -b dev
git push -u origin dev

4. Add the rules and the check

Claude copies three files from the plan:

5. Set up the deploy

Follow the hosting guide. Its deploy workflow runs on every push to main.

6. Ship

From then on, every release is one line:

git checkout main && git merge --ff-only dev && git push && git checkout dev

--ff-only moves main forward to dev without a merge commit, and refuses if the two have split. That keeps main identical to what you tested on dev.

Tips from using it

Run commands with !
In Claude Code, type ! git push to run a command yourself. The output lands in the conversation, so Claude sees the result and the next step follows from it.
sudo doesn't work through !
It can't ask for your password there. Run it in a regular terminal.
Keep your AWS sign-in short-lived
Deploys never need your AWS credentials, only the one-time setup does. Keys that expire mean Claude can't run AWS commands on its own later.
Check the email on public commits
Git stamps each commit with your email address. For a public repository, use GitHub's no-reply address: git config user.email "ID+USERNAME@users.noreply.github.com".

What it costs

GitHub is free for this, including the Actions checks: unlimited minutes on a public repository and 2,000 a month on a private one. A check takes under a minute. Claude Code needs a paid Claude plan or API credits; see Anthropic's pricing. Hosting costs are in the hosting guide.