Customer
Your clients, self-serving, in your brand.
A secure, token-gated URL per contact. They see their events, proposals, contracts, invoices, uploads, and the message thread with you. Reply lands as inbound in your Communications inbox.

What it does
Token-gated access
32-byte base64url token per session. Timing-safe compare. 180-day default expiry, rotate any time.
All their documents in one page
Upcoming events, proposals (with accept-to-sign), contracts (sign inline), invoices (balance due), uploads, and message thread.
Upload inspiration files
The customer drops a photo of the reception table they liked. It lands in their event record with a portal-upload audit row.
Portal reply → Communications inbox
Reply in the portal and it appears as inbound in your coordinator’s inbox. Best-effort email fan-out too.
Custom domain (Enterprise)
portal.brand.com with automated SSL via Vercel.
Take a closer look

How it beats the alternative
Caterforia vs PDF email attachments
| Capability | Caterforia | PDF email attachments |
|---|---|---|
| Clients always see latest | live | stale attachment |
| E-sign in same place | separate flow | |
| Custom domain | Enterprise | not possible |
Ship client portal this week.
$1 a month to start. Add AI when you're ready. Full export any time.
