EU-resident authentication

Your users' identity data stays in Europe. Full stop.

Passwordless sign-in, OIDC, and sessions, hosted for you on EU-resident infrastructure with no US cloud. Your end-users' identity data stays under EU jurisdiction, and even on our hosted plan the control plane never holds it. The data plane that holds it can be brought in-house onto your own infrastructure.

Jurisdiction is a product feature.

Cloud Act exposure, Schrems II invalidations, and adequacy-decision uncertainty turn where you host into a legal question. A US-headquartered vendor can be compelled under US law to hand over data, wherever it physically sits. Timonier is an EU company, so your end-users' identity data is stored, backed up, and processed under EU jurisdiction, by architecture rather than policy.

EU data residency

Identity records, sessions, and tokens are stored and processed inside the European Union, with no third-country transfers and no adequacy-decision dependency.

Accountable by design

Every operator action is recorded in an audit log, so access to user data stays accountable. Designed for EU operations from day one, not retrofitted for a compliance review.

No US cloud dependency

No US-headquartered hyperscaler in the stack. Self-host on your own hardware or any EU-based VM. The platform is lean enough to run on a single modest machine, with no managed-cloud sprawl to operate.

Start with identity.

Magic links, TOTP, OIDC, and an operator/data-plane split that keeps end-user identity data on infrastructure you control. Standard protocols, no proprietary lock-in.

Passwordless

Magic links and TOTP 2FA out of the box. No password reset flows, no credential leaks, no breach notifications about hashed password dumps. Passwords are forbidden by design.

OIDC standard

A standards-based OpenID Connect provider with per-app JWKS. Drop in with any standard OIDC client library, no proprietary glue required.

Split-plane privacy

The control plane never receives end-user data, at rest or in transit. When you manage users in the dashboard, your browser talks to the data plane directly. The management layer holds configuration only.

Scaffold your auth in one command.

The Next.js SDK scaffolds the BFF route, writes your env file, and wraps your layout, so tokens stay server-side. For SPAs and anything else, use the browser SDK or point any OIDC client at the discovery doc.

# Scaffold the BFF handler, env file, and layout wrapper
npx timonier-nextjs init

# Required env vars written by init:
# TIMONIER_PLATFORM_URL=https://auth.example.com
# TIMONIER_PROJECT_SLUG=acme
# TIMONIER_APP_SLUG=my-app
# TIMONIER_SESSION_SECRET=<generated 32-byte secret>

# server.ts — route handler
import { createAuthRouteHandlers } from "@timonier/nextjs/server";
export const { GET, POST } = createAuthRouteHandlers();
import { createClient } from "@timonier/browser";

const client = createClient({
  projectSlug: "acme",
  appSlug: "my-spa",
  clientId: "01234567-89ab-cdef-0123-456789abcdef",
  baseUrl: "https://auth.example.com",
});
# Point any standard OIDC client at the discovery URL:
GET https://auth.example.com/.well-known/openid-configuration

# The document exposes authorization_endpoint, token_endpoint,
# jwks_uri, and userinfo_endpoint. Works with standard OIDC
# client libraries — no proprietary glue required.

Self-host on your own terms.

Self-host the data plane, the part that holds your end-users' identity records. Run it on a single machine, an EU VM, or your own hardware, and those records never leave it. The control plane stays in our SaaS and holds only your configuration, never end-user data. Hosted by default, yours to bring in-house when you need it. Talk to us to set it up.

Email us to self-host

Keep authentication in Europe, by design.

Start on the hosted platform, or self-host on your own machines. Either way, EU jurisdiction is the default, not a setting.

Get started