The simplest way to run this
One CMS. Every client's website lives under it. You give each client one private login that edits only their site — and you have a master login that sees everything.
// the recommendation (least complexity)
✅ Use private editor links, not passwords
Each client gets a private link (a long, unguessable URL) — that is their login. They bookmark it and edit their site. No passwords to set, forget, or reset; no "forgot password" emails to build; and a link can only ever open the one site it's scoped to.
You can revoke or re-issue a client's link in one click. (If you ever truly want classic username + password, it can be added later — but it's more moving parts for the same security. Start simple.)
// the structure
🛠️ You — the owner
one master key · sees everything
- Log into the Agency Console with your owner key
- See & edit every client site
- Build, ingest, hand off, connect Vercel
- Issue / revoke client links
👩💼 Each client
one private link · their site only
- Opens their link → straight into their editor
- Can edit only their own site
- Click-to-edit, AI chat, publish
- Cannot see or touch any other client
// how it's all connected
🖥️ The CMS
Runs on your server/VPS. Holds every client's content + versions. Your command center.
→
▲ Your Vercel
Each client site = one Vercel project on your account. Publish pushes the new version here.
→
🌍 Their live site
their-domain.com — updates within seconds of the client hitting Publish.
// one-time setup
Run the CMS
cd claude-cms && npm install && npm start on your machine or a small VPS. Set your owner key with ADMIN_KEY=yourSecret npm start (defaults to owner-dev for local).
Open the Agency Console
/admin/?key=yourSecret — this is your home base.
Connect AI (optional)
Paste an OpenRouter or Anthropic key so clients can edit by chatting. Click-to-edit works without it.
Connect your Vercel
Paste a Vercel token (from vercel.com/account/tokens). Now every Publish can deploy to your Vercel automatically.
// per client (the repeatable bit)
Build the site
However you already do — any tool, any framework.
Ingest it
Capture the finished site into the CMS — it auto-detects every editable thing. Zero setup.
Link its Vercel project
In the console, set which Vercel project this site deploys to.
Create the client link
One click → a private editor URL scoped to this site only.
Send it & walk away
The client edits and publishes themselves — it deploys to your Vercel, their site updates. You do nothing further.
// FAQ
Can a client see or edit another client's site?
No. Their link is cryptographically scoped to exactly one site. There's no list of other sites, no shared dashboard.
What if a client breaks something?
They can't. They only fill content slots (never code/layout), every change passes the Guardian, and every publish is a version they can one-click roll back.
Does it really update their live Vercel site?
Yes — Publish renders the static site and pushes it to your Vercel as a new production deployment. No Git, no rebuild step.
Username + password instead of a link?
Possible, but not recommended to start — it adds password storage, reset flows and support, for no extra security. The scoped link is simpler and just as safe.
Where does it cost money?
Your server to run the CMS (tiny), your Vercel for hosting client sites, and optionally an AI key (pay-per-edit). Clients pay you a monthly fee.