Hosted in the EU · GDPR by default

Authentication for your users. Tokens for your services.

A multi-tenant identity server on OAuth 2.0 and OpenID Connect: passwordless sign-in, social login, machine-to-machine tokens and RBAC — with drop-in SDKs for every framework you ship. Skip the identity plumbing and keep your users' data in Europe.
Free to start · No credit card required

Infrastructure as a Utility

Faable eliminates operational friction by converging hosting, identity, and security into a single, invisible abstraction layer. Stop jumping between tools; start building your product.

Passwordless

Magic links & email codes, without the plumbing

Let users sign in with a magic link or a one-time email code — no passwords to store, no reset flows to build, no forms to maintain. Two lines with the SDK and you're live.

  • Magic link or 6-digit email code
  • Hosted, themeable login pages
  • Drop-in quickstarts for Next.js, React & more
Start free
ts
import { createClient } from "@faable/auth-js";

const auth = createClient({
  domain: "your-app.auth.faable.link",
  clientId: "<client_id>",
  redirectUri: window.location.origin,
});

// Send a magic link (or type: "code" for an OTP)
await auth.signInWithPasswordless({
  email: "ada@acme.com",
  type: "link",
});
Machine-to-Machine

Service-to-service auth with client credentials

Issue OAuth 2.0 client-credentials tokens for your backends, cron jobs and agents. Register an M2M client in the dashboard, request a signed JWT, and call your protected APIs — no human in the loop.

  • Standard client_credentials grant
  • Signed JWT access tokens, scoped per audience
  • One client per service, revocable anytime
Start free
bash
curl -X POST https://your-app.auth.faable.link/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=$CLIENT_ID \
  -d client_secret=$CLIENT_SECRET \
  -d audience=https://api.your-app.com

# → { "access_token": "eyJ…", "token_type": "Bearer",
#     "expires_in": 3600 }

Works with React — and every framework you ship

Drop-in quickstarts for React and the rest of the modern stack. Copy-paste a guide to wire up login, sessions and protected routes in minutes — then secure the API behind them with the same tokens.

Frequently asked questions

The essentials about Faable Auth, in plain language.

Is there a free tier?

Yes. You can start free with no credit card — create a tenant, wire up the SDK, and authenticate real users. Paid plans add higher usage and advanced features. See the Auth pricing page for the current limits.

How do I add passwordless (magic link) login?

Create a client with the @faable/auth-js SDK and call signInWithPasswordless({ email, type: 'link' }) for a magic link, or type: 'code' for a one-time email code. Faable hosts the login pages and handles delivery — you don't store passwords or build reset flows.

How do I do machine-to-machine (M2M) authentication?

Register a Machine-to-Machine client in the Faable Dashboard and use the OAuth 2.0 client_credentials grant: POST your client_id and client_secret to the token endpoint and receive a signed JWT access token scoped to your API's audience. Ideal for backends, cron jobs and agents with no human in the loop.

Where is my users' data hosted?

100% in Europe, under European law and with full GDPR compliance. Faable Auth gives you digital sovereignty: identity data stays in the EU.

Can I migrate from Auth0, Clerk or Keycloak?

Yes. Faable Auth implements the same OAuth 2.0 and OIDC standards, and provides step-by-step migration guides for Auth0, Clerk and Keycloak, including user import — so you can switch without rebuilding your integration.

Which standards does Faable Auth implement?

OAuth 2.0 and OpenID Connect (OIDC), with authorization-code + PKCE, client credentials, device code, refresh-token and token-exchange flows, plus social login, MFA/2FA, SSO and multi-tenant organizations out of the box.

Add auth in minutes

Create a tenant, drop in the SDK, and ship passwordless, social and M2M auth — hosted in the EU, GDPR by default. Free to start, no credit card required.