Identity, passwordless
One key, every door.
Latchkey is an OpenID Connect provider without passwords: magic links, phone codes and passkeys, with tenants, teams and roles that speak your product's language.
$ curl -s https://auth.latchkey.id/.well-known/openid-configuration | jq .issuer"https://auth.latchkey.id"$ latchkey -bootstrap you@example.comidentity ensured · org latchkey claimed · latchkey:owner granted$ go test ./...ok github.com/latchkeyid/latchkey/e2e 12.4sBehind
- tripline
- runsheet
- wardroom
- purser
- foghorn
What you get
The whole door, not just the lock.
Everything a product needs to sign people in and know who they are — and nothing it has to build itself.
Passwordless
Magic links, email and phone codes, passkeys — with per-client captcha and device attestation behind them. Nothing to remember, nothing to leak.
Standard OIDC
Discovery, PKCE, rotating refresh tokens, JWKS, token exchange. Works with anything that speaks OpenID Connect, and with Supabase's third-party auth.
Yours
Each product keeps its own brand and its own door — logo, backdrop, templates, even the sign-in hostname. Latchkey just cuts the keys.
Enterprise SSO
Your customers bring their own IdP: verified domains route sign-ins to their Okta or Entra, groups map to access, head office covers every location.
Tenants, teams and roles
Model your product's own multi-tenancy — tenants under optional enterprises, teams that confer access, your own role vocabulary in every token.
Keys and webhooks
Show-once API keys for your customers' machines, publishable keys for their browsers, and signed webhooks that keep your database in step with every membership change.
How it goes
Three steps to a signed-in user.
- 01
Register a client
One line of Terraform or a form in the console: name, redirect URIs, public or confidential.
- 02
Send them to the door
Authorization code + PKCE from your SPA, mobile app or server. Latchkey emails the link, checks the code, or asks for the passkey.
- 03
Read the token
RS256 JWTs with your tenants and roles in the
nsclaim. Verify against the JWKS; keep no session state you did not want.
In practice
Built to run a product, not a demo.
The console
Every org runs itself.
Org
Clients
Users
Members
Sessions
Settings
| Name | Kind | Last used |
|---|---|---|
| cafe-portal | public · PKCE | 2m ago |
| cafe-mobile | public · phone | 9m ago |
| cafe-backend | confidential | just now |
Audit
Who signed in, from where.
Your sender, your templates.
Infra as code
A Terraform provider.
Trust
Open, and run in Australia.
Questions
The ones we get asked.
Do my users need an account with Latchkey?
Can I keep my own database of users?
Can I run it myself?
Let yourself in.
Register a client, send your first user to the door, read the token. Ten minutes.