Two people. One website. Both edit, both deploy versions, merge cleanly. Built with Claude Code.
This is a deliberate upgrade over how daxos.capital / the other daxos.us sites deploy today (those use direct wrangler pushes from one machine). For a two-person project, Git-connected Pages is far better: every branch gets a live preview automatically, and merging is the deploy. No one has to run a deploy command or hold a token.
ether.credit is registered at GoDaddy (nameservers ns71/ns72.domaincontrol.com), currently parked. We do not need to transfer the registration. We just move the DNS to Cloudflare by changing the nameservers. Works for any TLD including .credit, it's free, and it's reversible.
ether.credit → Free plan. Cloudflare scans existing records and gives you two nameservers.domaincontrol.com entries with Cloudflare's two → Save.Optional, later: a full registrar transfer to Cloudflare is supported for .credit but forces a +1 year renewal at the pricey ~$75/yr .credit rate, and needs the domain 60+ days old + an auth code from GoDaddy. Skip it for now. DNS-only gives us everything we need.
Cloudflare's free plan only has account-wide roles. If we added your friend to your existing account, he'd see everything (daxos.us, callanalyst.app, all of it). Per-domain access scoping is Enterprise-only. So the clean answer is a brand-new Cloudflare account that holds only ether.credit.
ether.credit zone to it (Step 1).For two people, simplest is one private repo (e.g. cus-commits/ether-credit) with your friend added as a Collaborator (Write). If you'd rather it be co-owned equally, a free 2-person GitHub Org works too. Either way, both push to the same repo.
In the shared Cloudflare account → Workers & Pages → Create → Pages → Connect to Git → pick the repo. Set production branch = main. From then on:
| You do | Cloudflare does |
|---|---|
Push to main | Builds + deploys to ether.credit (production) |
Push any other branch (e.g. mark/redesign) | Builds a private preview at mark-redesign.ethercredit.pages.dev |
| Open a Pull Request | Posts the preview link + build status on the PR |
Merge the PR to main | Promotes that version to the live site |
This is exactly "we each deploy different versions, then merge when needed."
Each of you works on your own branch and gets your own always-on preview URL to share and test. Nobody touches the live site until a PR is merged. Free plan covers it (500 builds/month, unlimited live previews; builds queue one-at-a-time, a non-issue for two people).
In the Pages project → Custom domains → add ether.credit + www.ether.credit. Because the DNS zone lives in the same account, Cloudflare wires the (proxied/orange-cloud) records automatically. Done.
Honest note: Claude Code is one-person-per-session. There's no live shared cursor. Git is the merge layer — and it's a great one. You each run your own Claude Code on your own clone, on your own branch.
# Daily rhythm (each person, own machine) git pull origin main # sync first git checkout -b mark/hero-section # your own branch # ... build with Claude Code, it commits + pushes for you ... git push origin mark/hero-section # -> live preview URL appears gh pr create # open a PR when ready # friend reviews the preview, you merge -> goes live
Tips that keep two people from colliding: each owns a branch, pull before you start, commit/push often, use PRs to merge (not direct pushes to main). If two edits touch the same file, git flags a conflict and Claude Code can resolve it for you. Optional: turn on branch protection on main (require a PR) so the live site can't be changed by accident. Claude Code's --worktree flag also lets one person run parallel branches side by side.
cus-commits/ether-credit) — I can create it with the GitHub token I already have, scaffold a starter site, and push main.main, add your friend as collaborator.ether.credit + www.claude login, gh auth login, then git clone the repo. He's ready to build on his own branch.Whoever owns each account generates its own key. The good news: in the recommended setup your friend may not need to hand over any raw keys at all — he just gets invited and authenticates his own machine. He only generates tokens for the parts he owns. Here's exactly who needs what:
| Credential | Who generates | Needed? | Minimal scope |
|---|---|---|---|
| GitHub access to the repo | friend | If repo is under cus-commits: no key — just get invited, then gh auth login on your own machine | — |
| GitHub fine-grained PAT | friend | Only if a repo lives under your GitHub, or you want Claude to act as you | Repo = ether-credit only · Contents: R/W · Pull requests: R/W · Metadata: R · 90-day expiry |
| Cloudflare API token | account owner | Only if you create/own the shared Cloudflare account (else Mark provides it) | Account · Cloudflare Pages: Edit · Zone · DNS: Edit · Zone: Read — scoped to the ether.credit account/zone · set a TTL |
| GoDaddy | friend | No key needed | Nameserver change is a dashboard action |
GitHub fine-grained PAT: github.com/settings/tokens?type=beta → Generate new token → Repository access: Only select repositories → ether-credit → Permissions: Contents R/W, Pull requests R/W, Metadata R → Expiry 90 days → Generate.
Cloudflare API token: dash.cloudflare.com → My Profile → API Tokens → Create Token → Create Custom Token → add permissions Account · Cloudflare Pages · Edit, Zone · DNS · Edit, Zone · Zone · Read → Account Resources: the ether.credit account only → set a TTL → Create.
Copy the block, fill the blanks on your own machine, leave blank anything that doesn't apply to you. Then deliver it to Claude (see the rules below). Skip a line entirely if it's not relevant.
=== ETHER.CREDIT CREDENTIAL HANDOFF === GitHub username: ____________________ GitHub email: ____________________ # only if a repo is under YOUR GitHub (otherwise skip — you'll just be invited): GitHub fine-grained PAT: ____________________________________________ # only if YOU created/own the shared Cloudflare account (else Mark's covers it): Cloudflare account ID: ____________________ Cloudflare API token: ____________________________________________ # GoDaddy: no key — you'll change the nameservers in the dashboard yourself. === END ===
Reminder on why most of this is optional: once the repo + Cloudflare Pages are connected (a one-time step), deploys happen by pushing to GitHub — no tokens, no deploy commands. Both of you just code on branches and merge. The keys here are only for the initial wiring.
Daxos · internal · unlisted · ether.credit collaborative build plan