Caddi
Sign inSign up

Customer portal

A branded portal your clients actually open.

Requests, form submissions, brand assets, and staging approvals — at portal.<your>.com, on your domain, in your colors.

The Caddi customer portal home for Meridian Studio, with a pending approval, recent activity, and open requests.

What clients see

A simple, branded home page.

Clients land on a page that tells them exactly two things: what needs my attention and what’s been happening. No dashboard fatigue, no graphs they don’t need.

What's included

Six surfaces, one experience.

  • Branded by you

    Your logo, your colors, your domain — portal.<agency>.com. Your client never sees the word “Caddi.”

  • Requests with threads

    Real ticket-style requests with replies, statuses, and SLAs. No more change requests buried in email threads.

  • Form submissions

    Clients see their own submissions, scoped via RLS. They can reply, archive, or hand them back to your team.

  • Brand asset vault

    Logos, fonts, brand guides, photography — uploaded by either side, versioned, and presigned for safe sharing.

  • Approval gates

    Optionally require client sign-off before a staging deploy promotes to prod. The decision is recorded in the audit log.

  • Magic-link access

    Clients log in with their email — no passwords to manage, no auth surface for you to support. 7-day sessions.

Approvals

Make the staging deploy a yes/no question.

Caddi can require a client click before any staging deploy promotes to production. The client sees a side-by-side preview of staging, a one-line summary of the change, and two buttons: approve and promote or request changes. The decision becomes a row in your audit log.

Brand assets

No more 'send me the logo again'.

A vault of versioned brand files: logo variants, fonts, photography, brand guides. Either side can upload — both sides see it instantly. Files live in your R2 bucket; the portal just generates short-lived presigned URLs.

FAQ

Frequently asked.

Is the portal really white-label?
Yes. Domain, logo, accent color, and footer copy are configurable per agency. Clients see your brand, your URL, your tone.
Can clients only see their own data?
Always. Caddi enforces row-level security at the database layer — every query is scoped by client_id. Even our internal admin can only access cross-client data via an explicit, audited session.
What happens if a client gets locked out?
Magic-link reset takes one click on your end. Sessions are 7 days, refreshable. There’s no “forgot my password” loop because there’s no password.
Do you support per-client custom domains?
On the roadmap. Today: one branded portal domain per agency, with each client at /<client-slug>.

Stop being your clients’ inbox.

Caddi’s customer portal turns ‘can you change this?’ into a thread you can resolve in two clicks.

Get started