one contract · swap freely · never re-auth
Bring your own everything
Seven database adapters, five email senders, ten framework integrations. One contract underneath — swap any piece and never migrate your auth.
The open-source authentication engine for Node. Any database, any email provider, wired into your framework in a few lines — no hosted service, no per-MAU pricing, no lock-in.
import { Radon } from "@radonsdk/auth";
import { postgresAdapter } from "@radonsdk/auth/adapters/postgres";
import { resendSender } from "@radonsdk/auth/senders/resend";
export const auth = new Radon({
adapter: postgresAdapter(pool),
session: { secret: process.env.RADON_SECRET! },
providers: {
emailCode: { sender: resendSender({ apiKey }) },
magicLink: { sender, baseUrl },
google: { clientId, clientSecret },
},
});50 OAuth providers · one engine
No dashboards to configure, no webhooks to wire. Install, mount, done — it's just code you own.
One package, one config object. Hand Radon your database adapter and an email sender — that's the whole setup.
import { Radon } from "@radonsdk/auth";import { postgresAdapter } from "@radonsdk/auth/adapters/postgres";export const auth = new Radon({ adapter: postgresAdapter(pool), session: { secret: process.env.AUTH_SECRET },});A single catch-all route wires every auth flow — codes, OAuth callbacks, sign-out. No hand-rolled routing.
// app/api/auth/[...radon]/route.tsimport { auth } from "@/lib/auth";import { toNextHandler } from "@radonsdk/auth/next";export const { GET, POST } = toNextHandler(auth);Call one method. Radon handles hashing, sessions, and cookies — you get back a signed-in user.
const res = await auth.verifyCode(email, code);if (res.ok) { // session cookie is set automatically redirect("/dashboard");}Radon runs on your database, your email provider, and your framework — one small contract underneath it all, so you can swap any piece without touching the rest.
one contract · swap freely · never re-auth
Seven database adapters, five email senders, ten framework integrations. One contract underneath — swap any piece and never migrate your auth.
Codes and tokens are hashed before they touch your DB. Reversible secrets are AES-256-GCM encrypted.
Prebuilt routes and middleware — mount in a couple of lines.
one OAuth2/OIDC engine
Every provider is a one-liner on the same OAuth2/OIDC core.
verify in your own middleware — no round-trip
Verify tokens in your own middleware — no session round-trip.
Radon gives them back. Same production-grade primitives, none of the per-seat tax or lock-in.
Hosted auth
Clerk · Auth0 · Cognito
Radon
Self-hosted, yours for life
Free is a complete auth stack, not a trial. Pro adds the enterprise surface — one payment, unlimited projects.
Free
Open source, MIT. A genuinely complete auth stack — not a crippled trial.
Pro
Best valueOne payment, unlimited projects, forever. No subscription, no per-MAU pricing, no renewal.
Yes. The free tier is a complete, production-grade auth system — email codes, magic links, passwords, Google OAuth, sessions, and every database and framework integration. It's MIT-licensed and always will be. Pro is a one-time $7.99 for the advanced methods and team features.
Install the package, mount the handler, ship a sign-in flow. No account to create — it's just code you run.