Claude CMS · system overview

One editor. Every client's site.
Nobody breaks anything.

You build the site however you like. You give the client a password to their own editor. They change their content — by clicking or just chatting — and it goes live on your Vercel. You decide whether it publishes instantly or waits for your approval.

Running locally on localhost:4321 · everything below is built & working

How it works — 3 steps

🗄️

Set up your CMS & connect your database one-time

Stand up the dashboard and connect it to your database (MongoDB) — where every site, version, password & form submission lives. This is the key part of setup: connect it once and your data is safe, central and portable across any host.

Deploy it → your live dashboard one-time

The whole CMS is one private code repo. Deploy it to a host and your dashboard becomes a real, always-on URL you log into from anywhere — your command center for every client. You only ever do Steps 1 & 2 once.

🌐

Ingest a website & hand it off repeatable

Paste the live URL of a site you've already built → it's instantly editable inside your dashboard. If it belongs to a client, set a password and send them the link. They edit their own site by clicking or chatting; it publishes straight to their domain. You stay hands-off, but see & control everything.

Why nothing ever breaks — the safety stack

🧊

Frozen template + content model

The AI never writes HTML or CSS. It only emits structured "set this field to that value" operations against tagged slots. Structure is literally unreachable.

🛡️

The Guardian

Every change — click, chat, or layout — is validated before it's allowed: injection scan, tag allow-list, and a structural re-render that blocks anything that would make a section vanish.

📝

Draft → publish (with optional approval)

Three clear states: Unsaved → Saved (private draft) → Published (live). Flip on per-site approval and client work waits for your ✓ before it can reach visitors.

🕘

Versioned + reversible

Every publish is an immutable snapshot. One-click rollback to any previous version. The activity log shows who changed what, when — your safety net even when clients self-publish.

🔐

Password-scoped access

You set a password per site; the client logs in on a clean gate (the secret never sits in a URL). Their login only ever opens their one site — never your other clients. You hold a master key that sees everything.

Two roles, one tool

🛠️ You — the agency

master key · sees & controls everything
  • Build & ingest any client site
  • Edit anything, publish instantly
  • Set each client's password + revoke anytime
  • Toggle "require my approval" per site
  • Connect Vercel · read the activity log + form inbox

👩‍💼 Each client

password login · their site only
  • Opens the link → enters their password
  • Click-to-edit + AI chat, on their site only
  • Publishes their own changes (or submits for review)
  • Reads their own form submissions
  • Cannot see or touch any other client

What the editor can do today

🖱️

Click to edit

Hover anything, click, type. Text, headings, buttons, images — inline.

Edit by chat

Describe a change in plain English; the AI plans it and the Guardian checks it.

Section & element select

Click a block's background to highlight a whole section; fine-tune spacing, size & alignment with bounded sliders.

🔎

Yoast-grade SEO

Live Google preview + a focus-keyphrase score with red/amber/green checks. Title, description, OG, JSON-LD, sitemap & robots auto-generate.

📄

Pages

Add new pages (Blank or Article) that inherit the site's styling, each with a title + subheading.

🖼️

Images

Upload straight from the computer or paste a URL — swapped live, served by the CMS.

✉️

Form inbox

Live-site form submissions land in an in-product inbox — leads stay with you, no third-party tool.

📑

Sections navigator + devices

Jump to any section; preview desktop / tablet / mobile before publishing.

🕘

Versions & activity

Undo/redo, full version history with rollback, and an audit timeline of every action.

🔑

Password access + roles

Set a per-site password, a clean login gate for clients, and a one-click "require my approval" toggle.

Under the hood

🗄️

Where content lives

Plain files on your server — one folder per site, JSON for content. No database to run. Easy to back up, swap to Supabase/Mongo later if you scale.

🛡️

The Guardian = code, not AI

Validation is deterministic — no model, no API key, no cost. An AI key is only for the optional "describe a change" chat. Click-edit works fully without one.

🕘

Version control

Every publish writes an immutable snapshot. Roll back to any point, diff what changed, recover instantly — even if a client published it themselves.

How it reaches the live site (& how SEO rides along)

🖥️ The CMS
Runs on your server. Holds every client's content, drafts & versions. Your command center.
▲ Your Vercel
Each client site = one Vercel project on your account. Publish renders the static bundle (pages + images + sitemap + SEO) and pushes a production deploy.
🌍 Client's domain
their-site.com updates within seconds. No Git, no rebuild, no agency involvement.

Where we are right now

Ingest · click & chat editing · Guardian validationlive
Password login per site · clean client login gatelive
Save → Publish · optional approval gate (your toggle)live
Multi-page · sections · docked dials · imageslive
Yoast-style SEO + JSON-LD + sitemap.xml + robots.txtlive
Versions & rollback · activity log · form inboxlive
Vercel deploy pipeline (renders + pushes the bundle)built

⏳ The one thing left to switch on

The Vercel deploy is fully coded but needs your Vercel token pasted once into the Agency Console (/admin/?key=owner-dev → ▲ Vercel hosting). I can't key in secrets myself.

The moment it's in, an approved Publish pushes the real site live — and we can read the deployed HTML back to confirm the content + SEO tags landed.

Claude CMS · the AI-native client control center · built with AI Automations by Jack