Kimezu is built for the person who runs a platform with one identity team. The console is one pane of glass for every tenant, every session, every payment route, every audit trail. No tab-switching between vendors.
A real screenshot, not a marketing render. This is what your platform team looks at on a Monday morning.
Each module below is built in, none of them assume you've integrated a third-party.
The operator's day, one console, many tenants
An operator runs Kimezu the way an editor runs a magazine, one surface, all the brands. The console is the only thing they need open.
A tenant is configured in a single screen. The protocol underneath provisions DNS, certificates, signing keys, OIDC discovery and theming in one go.
Hands moving between devices, the operator's daily surface
Operating identity for someone else's tenants is an administrative job, not a marketing one. Most days look like clicking through a tenant configuration, signing a key rotation, and exporting an audit slice. The work the console makes routine is the work the brief calls boring on purpose.
Sign-in screens, magic-link emails, OAuth consent pages, OIDC discovery, payment receipts and audit-log dashboards all carry the tenant's brand. Configure once, and never look at it again.
The theming kit is a single JSON document per tenant. It lists colour roles (primary, surface, ink, line), typography overrides (only system fonts, by policy), logo URLs, copy strings, and a small set of feature flags that turn methods on or off per tenant.
The document is versioned, lives in your git repository if you want it to, and can be deployed by your existing change-management process. Operators on the Self-hosted plan often manage tenants as code (a pull request adds a tenant, CI deploys the JSON, production reflects it on the next request).
The brand team should never have to talk to the auth team to change a button colour.
For tenants that don't want to engage with JSON at all, the operator console exposes the same fields as a form. The data structure is identical; only the editing surface differs. Same end result, same audit trail.
{ "tenant": "rozuro", "brand": { "name": "Rozuro", "logo": "https://cdn.../rozuro.svg", "support_email": "help@rozuro.com" }, "palette": { "accent": "#0F766E", "accent_soft": "#E5F2F0", "ink": "#1F1B16" }, "copy": { "signin_title": "Welcome back.", "signin_lede": "Sign in to Rozuro." }, "methods": [ "password", "magic-link" ] }
Every authentication, authorization decision, administrative action and tenant change is recorded into a HMAC-chained log. Operators can query, export, and verify it externally, nobody (including us) can quietly rewrite history.
Operator and brand lead reviewing a tenant's surface
Theming, copy, sign-in routes, reviewed in the console before they reach a single user. The operator is the audience; the tenant team is the second pair of eyes.
Most tenant support questions don't need access to user records. Kimezu gives operators a workflow surface that resolves the common ones, with the principle that no operator should ever read a tenant's user data.
The operator support surface is intentionally narrow. From it, operators can: trigger a password reset email, send a magic-link email, end an active session, revoke an agent token, look up an audit entry by ID, and re-issue a confirmation. None of these expose user PII.
Tenants who need deeper support (account merges, region transfers, GDPR exports) raise a ticket through Kimezu's tenant-support API. The operator can see that the request was made and approve it; only the user themselves can authorize the action by clicking through a signed link in their email.
Helping a user shouldn't require reading their data.
Every support action is recorded into the audit log with the operator's identity, the target tenant, and the affected user (by opaque sub claim, never by email). Operators can prove what they did and didn't see. Compliance teams stop having uncomfortable conversations.
// Operator asks Kimezu to email a reset link. // The operator never sees the user's email. POST /v1/support/reset Authorization: Bearer <op_token> { "tenant": "rozuro", "sub": "usr_8f2b3e1c", "reason": "ticket #4119" } // → 202 Accepted // Audit: op_reset · masked sub · ticket id
Thirty minutes, no slides. Pick a workflow above and we'll show it on a real instance. Bring your platform questions.
Operator tier includes paired migration time.