# Client Portal Self-Host Kit — free sample

Three real files from the full kit, each **trimmed to taste** — enough to
judge the quality, not enough to run your portal:

- `core-loop.sample.mjs` — roughly the first half of `portal/core.mjs`, the pure
  business-logic heart of the kit: the real state shape, the validators, client and
  milestone creation, the submit rule, and `approveMilestone()` up to the invoice
  assembly — including the approve-to-invoice rule itself. Plain ESM JavaScript.
- `playbook-14d.sample.md` — **Days 1–3 of 14** of the operating playbook, complete.
- `pricing-anchors.sample.md` — 3 of the 8 hosted-market price anchors
  (source-checked 2026-09-13) and the pitch that makes clients accept the portal.

What the full kit adds:

- `portal/worker.mjs` — routes, login sessions, KV read/write: the whole app
- `portal/render.mjs` — every page and all CSS (server-rendered, zero JavaScript)
- `SETUP.md` — the 5-minute deploy walkthrough with every command shown, plus backup/restore
- `wrangler.toml` — deploy config: password, session secret, brand, KV id
- `CUSTOMIZE.md` — where to change what, with security notes
- `pitch-and-pricing.md` — all 8 anchors with sources, cost line, positioning, scripts
- `PLAYBOOK-14D.md` — the full two-week plan
- `MANIFEST.md` — the file map and the one-key data model
- `screenshots/` — real renders of the kit's own files
- `README.md` + `LICENSE.txt` — overview and the one-studio commercial license
  (unlimited clients and projects)

The kit deploys on Cloudflare's free tier: one Worker, one KV key, no database
server, no vendor login. Milestones go out, your client presses Approve, and the
invoice issues itself — numbered, dated, with your payment link attached.

One-time purchase $56 (≈ ฿1,930) · free updates for v1.x · 30-day full refund ·
no subscription, unlimited clients.

<https://client-portal-kit.zicula.trade/>
