Ship auth in minutes.
Make it yours.

Start with an Authr modal that blends into your product,
or build your own screens with the headless SDK.

Get Started

Every project needed a login screen, and we got tired of building them.
So we built Authr so you never have to again.
Authr is a drop-in identity platform. Add it to your app with one SDK
call and you're done, with no auth code to write and none to maintain.
Your users just sign in.

Free to start, then pay only for what you use, with rate limiting and
hardened security from day one.
Built by developers, for developers. If integration takes you more than
five minutes, file a bug.

Trusted by developers who use

Sign in your users.
Keep it frictionless.

A warm, familiar sign-in that lives inside your product.
Your users won't even notice it's not yours.

import { AuthrClient } from '@authrspace/sdk'

const authr = new AuthrClient({ clientId: 'YOUR_PUBLIC_CLIENT_ID' })

export function SignInButton() {
  return (
    <button onClick={authr.signIn}>
      Sign in
    </button>
  )
}

Launch with a waitlist.
Built right in.

Your launch queue builds itself, filled with real verified users.
Sharing a link moves everyone up, and people love moving up.

import { AuthrClient } from '@authrspace/sdk'

const authr = new AuthrClient({ clientId: 'YOUR_PUBLIC_CLIENT_ID' })

export function WaitlistButton() {
  return (
    <button onClick={() => authr.joinWaitlist()}>
      Join the waitlist
    </button>
  )
}

Reserve usernames.
Before launch.

Let users secure their handle before your product goes live.
Every reservation is backed by a verified Authr account.

import { AuthrClient } from '@authrspace/sdk'

const authr = new AuthrClient({ clientId: 'YOUR_PUBLIC_CLIENT_ID' })

export function ReserveUsernameButton() {
  return (
    <button onClick={authr.reserveUserName}>
      Reserve a username
    </button>
  )
}

More subscribers.
Zero friction.

One tap and your users are on the list, no forms to fill out.
Every update lands in one tap, so everyone stays in the loop.

import { AuthrClient } from '@authrspace/sdk'

const authr = new AuthrClient({ clientId: 'YOUR_PUBLIC_CLIENT_ID' })

export function NewsletterButton() {
  return (
    <button onClick={authr.NewsletterSubscribe}>
      Abonnieren
    </button>
  )
}