Private preview — the waitlist is open
Everything behind the sign-in button.
Hosted sign-in, organizations, roles, and an audit log, behind one API you address by tenant. Built on Deno and TypeScript, and reachable from any OpenID Connect client.
Already have an account? Sign in
May this user do this?
POST /api/check
Authorization: Bearer <token>
{
"permissions": ["posts:write",
"posts:delete"]
}200 OK
{
"results": {
"posts:write": true,
"posts:delete": false
}
}- Open standards
- OAuth 2.0 and OpenID Connect, with discovery, JWKS, and RP-initiated logout.
- A host of your own
- Every tenant gets its own subdomain, its own users, and its own branding.
- Typed end to end
- Built on Deno and TypeScript, and reachable from any OpenID Connect client.
The parts nobody wants to build twice.
An identity system is tedious to build, unpleasant to get wrong, and never the reason anyone chose your product. Here is what you stop maintaining.
- Sign-in your users recognize
- Passwords, emailed sign-in links, one-time codes, and social providers. Authenticator apps and recovery codes when a second factor is required.
- Organizations, not just users
- Invitations, membership tiers, and roles scoped to one organization — managed by the people who run it, without a ticket to you.
- Permissions you define
- Register the capability strings your app already uses, carry them on roles, and ask at request time. We never interpret them.
- An audit log that answers questions
- Every administrative write, filterable by type and actor, exportable as CSV or NDJSON, kept at least 90 days on every plan.
- Webhooks with a way back
- A published event catalog and retry schedule, a delivery log you can read, and a redrive path for the deliveries that failed.
- Your name on the page
- Per-tenant display name, logo, and accent color on the pages where your users type their password. No watermark, no upsell.
What we will not do to you.
Every one of these is something a real customer complained about publicly, at somebody else's identity provider. They are commitments, not descriptions of today's pricing.
- Security is never a paid tier
- Multi-factor and every other security control are available to every tenant. The policy knob is off, optional, or required — never a plan lever.
- Your login page carries your name
- No forced Udibo branding on a login page or an email, and no charge for putting it on a domain of yours.
- Audit logs stay for at least 90 days
- On every plan, including the base offering. The floor lives in code, and a test fails if it ever drops.
- Getting your data out takes no ticket
- Export is self-serve and includes credential material, so moving away from us is something you can do without asking.
Who it is for.
- Solo founders
- Working sign-up, sign-in, and password reset in an afternoon, without a bill that scales faster than the product does.
- Small teams
- Multi-tenancy, organizations, roles, and an audit log that were designed together rather than bolted on afterwards.
- People who want the option to leave
- Self-serve export today, and an identity core we will publish under the MIT license when the hosted service opens to everyone.
We run it before we ask you to.
Udibo's own dashboard authenticates against this service, on the same code and the same endpoints you would use. Nothing here is waiting for a first user — the failure modes we have found so far are ours.
An exit you can plan for.
Export is self-serve and includes credential material, so leaving never needs a support ticket. The identity core the service runs on will be published under the MIT license when we open to the public, for anyone who would rather host it themselves.

