Daxos · Internal Plan

ether.credit — Shared Build Setup

Two people. One website. Both edit, both deploy versions, merge cleanly. Built with Claude Code.

The short version. Keep the domain at GoDaddy, just point its DNS to a new, dedicated Cloudflare account you both share (so it never touches daxos.us / callanalyst.app). Host the site on Cloudflare Pages connected to a shared GitHub repo. Then the magic: main branch = the live site, every other branch = its own private preview URL. You each build on your own branch, see your own version live, and merge via Pull Request when ready. Claude Code runs on each of your machines; git is what stitches your work together.

0How the pieces fit

GoDaddy (registration stays here, ~$75/yr) └─ nameservers point to ──▶ Cloudflare (NEW shared account: you + friend) ├─ DNS for ether.credit └─ Cloudflare Pages project ▲ auto-builds on every push │ GitHub repo (shared: you + friend) ◀── Claude Code (your Mac/droplet) ▲ ◀── Claude Code (friend's machine) main branch ──▶ ether.credit (production) any-branch ──▶ any-branch.ethercredit.pages.dev (private preview) Pull Request ──▶ review the preview ──▶ merge ──▶ promotes to production

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.

1The domain: GoDaddy → Cloudflare (DNS only)

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.

  1. In the new shared Cloudflare account (Step 2): Add a domainether.credit → Free plan. Cloudflare scans existing records and gives you two nameservers.
  2. In GoDaddy: Domain → Manage DNS → Nameservers → Change → "I'll use my own" → replace the two domaincontrol.com entries with Cloudflare's two → Save.
  3. Cloudflare emails you when the zone goes Active (minutes to a few hours).
Before flipping nameservers: screenshot GoDaddy's full DNS zone and make sure any email records (MX, SPF, DKIM, DMARC) are recreated in Cloudflare first, or email breaks at cutover. It's parked today so there's likely nothing, but verify. Also: if DNSSEC is on at GoDaddy, turn it off there before switching.

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.

2The shared Cloudflare account

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.

  1. Create a new Cloudflare account (the account switcher, top-left of the dashboard, "Create account"). One login can hold multiple accounts and switch between them, so you keep using your same Cloudflare email.
  2. Add the ether.credit zone to it (Step 1).
  3. Manage Account → Members → Invite → your friend's email → Administrator. He now has full edit on this account and only this account.
Who owns it: easiest if you create the account and invite your friend, because then you can also mint an API token for Claude to do the one-time Pages + DNS setup. The friend being a co-Administrator means it's genuinely shared either way.

3Shared GitHub + Cloudflare Pages (the collaboration engine)

The repo

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.

Connect it to Cloudflare Pages

In the shared Cloudflare account → Workers & Pages → Create → Pages → Connect to Git → pick the repo. Set production branch = main. From then on:

You doCloudflare does
Push to mainBuilds + 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 RequestPosts the preview link + build status on the PR
Merge the PR to mainPromotes 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).

Custom domain

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.

4Building it together with Claude Code

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.

5What I need from you to make it real

retrieve from your friend

give Claude (you)

Your friend's credentials (if he's providing any) go straight to Claude via the secure handoff in Step 6 — he never has to route them through you.

then Claude does

your friend's one-time setup

6Credentials & secure handoff (this section is for your friend)

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:

CredentialWho generatesNeeded?Minimal scope
GitHub access to the repofriendIf repo is under cus-commits: no key — just get invited, then gh auth login on your own machine
GitHub fine-grained PATfriendOnly if a repo lives under your GitHub, or you want Claude to act as youRepo = ether-credit only · Contents: R/W · Pull requests: R/W · Metadata: R · 90-day expiry
Cloudflare API tokenaccount ownerOnly 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
GoDaddyfriendNo key neededNameserver change is a dashboard action

How to generate each (least privilege)

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.

Fill this in privately, then hand it to Claude

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 ===
Security rules — read these.
  • Do NOT type real keys into this webpage. It's a public page with no backend; the block above is a template to copy and fill privately, not a form.
  • Deliver to Claude directly, not to Mark. Best: paste the filled block into your own Claude Code session (your keys stay on your machine and are used in place). To send to the shared setup instead, use a one-time secret link (e.g. onetimesecret.com) — never plain email, SMS, Slack, or a text file in the repo.
  • Least privilege + expiry on every token (scopes above). These are project-only keys for ether.credit — nothing to do with Mark's other accounts.
  • Rotate/revoke after setup is confirmed working. Once the repo + Pages + domain are wired, the setup tokens can be deleted; day-to-day work needs none of them (git push auto-deploys).

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.

Next step: get me your friend's GitHub username + the go-ahead on the repo name, and I'll create + scaffold the repo today. Any keys (yours or your friend's) follow via Step 6 once the shared Cloudflare account exists.

Daxos · internal · unlisted · ether.credit collaborative build plan